【问题标题】:B2C - Unable to output custom attribute in SAML responseB2C - 无法在 SAML 响应中输出自定义属性
【发布时间】:2021-10-14 20:59:51
【问题描述】:

我正在尝试连接到 SAML SP,他们要求我们向他们发送 4 个声明。其中 3 个是标准声明(姓氏、电子邮件和 objectId),但名称不同,我已经能够通过在 RelyingParty 中使用 OutputClaim 的 PartnerClaimType 属性来完成。另一种说法是我必须在 B2C 门户中为其创建一个自定义属性,我已将其命名为employeeId,而 SP 需要将其称为employeenumber。

我已经读到自定义属性需要以 extension_ 开头,所以我在我们的自定义策略中添加了以下内容:

SignUpOrSignInSaml:

<OutputClaim ClaimTypeReferenceId="extension_employeeId" PartnerClaimType="employeenumber" />

TrustFrameworkBase:

  <ClaimType Id="extension_employeeId">
    <DisplayName>EmployeeID</DisplayName>
    <DataType>string</DataType>
    <UserHelpText>Used when authenticating using SAML</UserHelpText>
  </ClaimType>

我已将以下内容添加到 AAD-UserReadUsingObjectId 技术配置文件中。

<OutputClaim ClaimTypeReferenceId="extension_employeeId" />

我一直在使用 Microsoft 的 SAML 测试应用来查看响应中的内容。前 3 个声明很好,但自定义属性永远不会。如果我给它一个默认值,那么它就在响应中,所以我猜无论出于何种原因,到目前为止我只在一个用户帐户上设置的实际值都找不到。有什么我遗漏的吗?

【问题讨论】:

  • 您是否启用了扩展属性支持? docs.microsoft.com/en-us/azure/active-directory-b2c/…
  • @JasSuri-MSFT 我确实有在策略中启用自定义属性的部分,尽管再次检查后它不太正确。但是,改正后还是不行。
  • 最后要检查的是:您所针对的扩展属性,它是否包含与 AAD-Common ApplicationId GUID 相同的 GUID?
  • @JasSuri-MSFT 我不明白。您是在问自定义策略中的自定义属性名称是否包含相同的 GUID?
  • 不在自定义策略中,而是在图形 api 返回的用户对象上的原始属性名称 - 该原始属性名称是否包含与您在 AAD-Common 中放置的 GUID 相同的 GUID。它需要匹配。

标签: azure-ad-b2c saml


【解决方案1】:

我终于设法通过创建一个新的技术配置文件来输出 extension_EmployeeNumber 来完成这项工作。此技术配置文件由现有 SelfAsserted-LocalAccountSignin-Email 技术配置文件中的 ValidationTechnicalProfile 引用,该技术配置文件还具有 extension_EmployeeNumber 的 OutputClaim。

【讨论】:

    猜你喜欢
    • 2021-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-02
    相关资源
    最近更新 更多