使用spring设置azure客户端凭据流

gjmwrych  于 2021-09-29  发布在  Java
关注(0)|答案(1)|浏览(342)

我正在尝试使用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配置



7d7tgy0s

7d7tgy0s1#

您当前应该执行服务器到服务器的交互,也就是说,没有用户参与。因此,您的服务器应用程序需要创建一个 appRole ,然后将应用程序角色作为应用程序权限授予客户端应用程序。
首先,您需要公开受azure保护的服务器应用程序的api,可以根据以下过程进行配置:
azure门户>应用程序注册>公开api>添加作用域>添加客户端应用程序

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

接下来,转到客户端应用程序>api权限>添加权限>我的api>您的api应用程序。

最后,您需要在没有用户登录的情况下使用客户端凭据流获取访问令牌:

解析令牌:

相关问题