【问题标题】:Collect id_token amr claim with OpenIdConnect ClaimsProvider in Azure AD B2C在 Azure AD B2C 中使用 OpenIdConnect ClaimsProvider 收集 id_token amr 声明
【发布时间】:2021-04-04 02:33:45
【问题描述】:

我想从 id_token 中获取身份验证方法参考(amr 声明)值。我正在考虑将其保存为会话中的 PersistedClaim。

子:xxxxxxxx …… amr : {pwd, swk, mfa} idp : yyyyyyyy

因为此声明包含在 ID 令牌中,而不是从 userinfo 端点收集的数据中,所以我不确定 OIDC 是否可以这样做。

我已尝试添加 amr 声明类型:

 <ClaimType Id="amr">
    <DisplayName>Authentication Method Reference</DisplayName>
    <DataType>string</DataType>
    <DefaultPartnerClaimTypes>
      <Protocol Name="OAuth2" PartnerClaimType="amr" />
    </DefaultPartnerClaimTypes>
    <UserHelpText>rfc8176</UserHelpText>
  </ClaimType>

和一个 OutputClaim:

   <OutputClaim ClaimTypeReferenceId="amr" PartnerClaimType="amr" />

但这并没有返回相当不透明的内容:“AADB2C:发生异常。”

  1. 这种从 id_token 中捕获的声明是否可能?

  2. 如果是这样,我该如何挖掘这个“AADB2C:发生异常。”?

【问题讨论】:

  • 该声明是关于令牌(会话)的信息,而不是用户个人资料数据的一部分。这就是为什么您没有通过 UserInfo 端点获得它的原因。为什么不直接从令牌中读取呢?请记住,JWT 只是 base-64 编码的。
  • 我喜欢这种方法,但我找不到这样的例子。我知道如何解码令牌,但我不知道在使用 OIDC 提供程序时如何获取 id_token。你能给我举个例子吗?
  • 让我稍微了解一下上下文。用户通过身份验证后你会得到什么?您如何在没有令牌(id_token 或 access_token)的情况下访问用户信息端点?你应该已经有一个令牌
  • Azure B2C 调用 Okta 使用 OpenIdConnect 进行身份验证(不是 OAuth2)。我看不到在哪里可以获得 id_token。我只得到输出声明(来自 OIDC 用户信息)。 ``` xyz.okta.com/.well-known/openid-configuration</Item> 代码form_postopenid profile email ```

标签: azure-ad-b2c


【解决方案1】:

Azure AD B2C 不像 Azure AD 那样发出 amr 声明。您需要在相关技术配置文件(登录步骤、mfa 步骤)中输出此声明,然后使用自定义策略在依赖方部分输出。

您可以解决您的错误: https://docs.microsoft.com/en-us/azure/active-directory-b2c/troubleshoot-with-application-insights

如果您想通过联合 Idp 跟踪身份验证类型,则必须将 IdP 配置为发出声明,然后 AAD B2C 可以使用 outputclaim 摄取。

【讨论】:

  • IDP 确实在 OAuth2 步骤期间在 JWT 发送中发出声明,但我在 Azure B2C 中使用 OIDC TechnicalProfile。如果我使用的是 OIDC 配置文件,如何“返回”到处理的 OAuth2 阶段?
  • 如果您的 IdP 的 Oauth2 技术配置文件具有“amr”声明的输出声明,则它可用于任何后续编排步骤。并将其发布到 AAD B2C 令牌(我认为您的意思是 OIDC TP),也将其输出到依赖方部分。这里涵盖了这些概念docs.microsoft.com/en-us/azure/active-directory-b2c/…
猜你喜欢
  • 2021-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-18
  • 2019-08-28
  • 1970-01-01
相关资源
最近更新 更多