Azure AD B2C 如何配置 "aud" 声明

Azure AD B2C how to configure the "aud" claim

我是 Azure 生态系统的新手,有点迷茫。

我使用 Azure AD B2C 来保护多个 Spring 启动应用程序,但我有一个奇怪的行为,似乎令牌绑定到特定的应用程序,这不是很方便,因为这意味着我们有管理多个令牌,每个应用程序一个。在每个应用程序上我都有这样的配置:

azure:
  activedirectory:
    b2c:
      base-uri: https://<tenant>.b2clogin.com/
      tenant-id: <tenant-id>
      client-id: <client-id>
      user-flows:
        sign-up-or-sign-in: B2C_1_signin_signup

例如,我有一个用户 UserA 想要使用 ApplicationA、ApplicationC 和 ApplicationD。 UserA 依赖 ApplicationB(前端应用程序)使用 grant_type=password 请求令牌。 当我使用授予的访问令牌时,我只能使用一个应用程序。如果我尝试在另一个应用程序中使用相同的令牌,我会在应用程序日志中看到一条 HTTP 401 消息:

The aud claim is not valid

问题是,当我们询问令牌时,我们只能指定一个 scope,范围值应包含应使用令牌的应用程序。

我的问题是:我们如何为多个资源服务器使用一个令牌?如何配置 Azure AD B2C 以添加 aud 声明中的所有应用程序,以便资源服务器识别令牌?

谢谢

请求的范围决定了可以在哪个 API 中使用访问令牌。访问令牌 aud 声明将设置为相应范围的客户端 ID。

您可以使用在第一次身份验证中获取的刷新令牌来请求不同范围的访问令牌。

作为刷新令牌调用的一部分,您请求的后续范围必须在您通过身份验证的第一个应用程序(应用程序注册)下被授予权限。此时在初始身份验证中请求哪个范围并不重要。