我正在尝试使用spring应用程序访问web api(两者都是我自己拥有的)来设置客户端凭据流。我试图遵循azure文档microsoft identity platform和oauth 2.0客户端凭据流和快速启动:配置客户端应用程序以访问web api,但由于文档不清楚,我遇到了一些问题。在我的设置中,azure强制用户登录,然后其他错误消息从那里冒出来。然而,正如我们所知,客户端凭证应该是机器对机器授权,所以我不确定为什么会发生这种登录流。
下面是我的设置。任何反馈都会有助于我开始跑步。
环境
OS: Ubuntu 20.10
IDE: Visual Studio Code
Library/Libraries:
com.azure.spring:azure-spring-boot-starter-active-directory:3.5.0
org.springframework.boot:spring-boot-starter-oauth2-client
application.yml
azure:
activedirectory:
tenant-id: {my-web-app-tenant-id}
client-id: {my-web-app-client-id}
client-secret: {my-web-app-client-secret}
authorization-clients:
web-api:
scopes:
- api://example-api/Employees.Read.All
- api://example-api/Employees.Write.All
azure配置
1条答案
按热度按时间7d7tgy0s1#
您当前应该执行服务器到服务器的交互,也就是说,没有用户参与。因此,您的服务器应用程序需要创建一个
appRole
,然后将应用程序角色作为应用程序权限授予客户端应用程序。首先,您需要公开受azure保护的服务器应用程序的api,可以根据以下过程进行配置:
azure门户>应用程序注册>公开api>添加作用域>添加客户端应用程序
然后您需要创建
appRole
,然后将该角色作为应用程序权限授予客户端应用程序。接下来,转到客户端应用程序>api权限>添加权限>我的api>您的api应用程序。
最后,您需要在没有用户登录的情况下使用客户端凭据流获取访问令牌:
解析令牌: