【问题标题】:Include Azure AD B2C aud claim in call to custom claim REST API在调用自定义声明 REST API 时包含 Azure AD B2C 审计声明
【发布时间】:2020-01-03 16:22:13
【问题描述】:

TL;DR: {OIDC:ClientId} 始终是调用应用程序。我还需要知道“观众”应用程序。是否有解决此问题的索赔解决方案?

更详细:

问题来了:

  1. 应用程序 A 和应用程序 B 都在同一个 Azure AD B2C 租户中注册。
  2. 单独的 REST API(我们将其称为“声明 API”)将自定义声明提供给 Azure AD B2C 令牌。这些声明必须因使用令牌的应用程序而异。
  3. 我使用 {OIDC:ClientId} 声明解析器将请求应用程序的 clientId 发送到声明 API,就像在 this answer 中一样。
  4. 当应用程序 A 为应用程序 B 请求访问令牌时,声明 API 会收到应用程序 A 的客户端 ID。但是,我需要为应用程序 B 加载声明,因为应用程序会实际使用该令牌。那么问题来了,如何获取目标应用程序和请求应用程序的 clientID?

我已考虑使用 {OIDC:scopes} 声明解析器来解决此问题。这可能有效,但它似乎有点像一个黑客。有没有更好的选择?

【问题讨论】:

    标签: azure azure-ad-b2c claims


    【解决方案1】:

    根据this document,看来{OIDC:scopes} 是唯一可用的选项。进一步思考,这是有道理的,因为可能会请求当前租户之外的某些范围(例如 Microsoft Graph API)。在这种情况下,无法为目标应用程序提供 clientId。

    {OIDC:scopes} 是一个字符串,所有请求的范围都用空格分隔。要检测何时为与当前应用程序不同的应用程序生成访问令牌,对范围字段进行简单的字符串搜索就足够了。如果应用程序的 App ID URI 存在于范围字符串中,则正在为该应用程序请求访问令牌。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-03
      • 1970-01-01
      • 2021-01-12
      • 1970-01-01
      • 1970-01-01
      • 2018-03-28
      • 2020-03-15
      • 1970-01-01
      相关资源
      最近更新 更多