我正在尝试用Spring应用程序访问一个web来设置客户端凭证流(两者都是我拥有的)。我试图遵循Azure文档Microsoft平台和OAuth 2.0客户端凭据流和Quickstart:配置客户端应用程序以访问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-clientapplication.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.AllAzure组态




发布于 2021-06-30 07:37:29
您目前应该执行服务器与服务器之间的交互,即没有用户参与.因此,您的服务器应用程序需要创建一个appRole,然后将应用程序角色作为应用程序权限授予客户端应用程序。
首先,您需要公开,这是由Azure保护的服务器应用程序的api,可以根据以下过程进行配置:
Azure portal>App registrations>Expose an API>Add a scope>Add客户端应用程序

然后需要创建服务器应用程序的appRole,然后将该角色作为应用程序权限授予客户端应用程序。

接下来,转到客户端应用程序> api permissions>Add a permission>My >您的api应用程序。

最后,您需要使用没有用户登录的客户凭证流获取访问令牌:

解析令牌:

发布于 2021-07-30 06:44:43
@BillyBolton。
在使用azure-spring-boot-starter-active-directory时,有几种类型的应用程序
web application时,将出现登录流。resource server时,将不会出现登录流。相关文件:
相关样本:
https://stackoverflow.com/questions/68181260
复制相似问题