【问题标题】:Azure B2C SAML response missing email address attributeAzure B2C SAML 响应缺少电子邮件地址属性
【发布时间】:2021-10-01 07:34:50
【问题描述】:

我使用 MS ref 注册了 SAML 应用程序:https://docs.microsoft.com/en-us/azure/active-directory-b2c/saml-service-provider?tabs=windows&pivots=b2c-custom-policy

我的 SignUpOrSignin.xml 具有 outputclaim 标记以将电子邮件属性值作为 SAML 响应返回,但除了在 SAML 响应中使用帐户电子邮件之外,我得到了其余的属性值。我已确认用户帐户在 Azure B2C AD 中具有有效的电子邮件值。不确定我在这里缺少什么?请问我需要配置任何其他设置来获取 SAML 响应中的电子邮件属性值吗?

【问题讨论】:

  • 您如何确认用户帐户在 AAD B2C 中具有有效的电子邮件值?您是否通过用户旅程中的任何技术资料来阅读该属性?
  • 谢谢 Jas,1. 您如何确认用户帐户在 AAD B2C 中具有有效的电子邮件值? Ans: 是的,它的有效 gmail-id。 2. 您是否通过用户旅程中的任何技术资料来阅读属性?答:你说得对,TrustFrameworkBase.xml -> TechnicalProfile Id = Login-NonInteractive outputclaims 没有电子邮件属性。但是,即使在将其更新为包含电子邮件 outputclaim 之后,仍然没有在 SAML 响应中获取此属性。请提供任何自定义策略参考示例包。谢谢。

标签: azure azure-ad-b2c saml


【解决方案1】:

AAD-UserReadUsingObjectId中添加outputClaim。

<OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="ATTRIBUTE_NAME" />

通常电子邮件存储在属性中:signInNames.emailAddress

【讨论】:

  • 感谢 Jas Suri,即使在更新以下设置后,也无法获得电子邮件属性响应。在我的 SignUpOrSignin.xml -> 还有 TrustFramwWorkBase.xml -> -> schemas.xmlsoap.org/ws/2005/05/identity/claims/email" /> 和 -> 也是如此。
  • 你映射不正确。您将“signInNames”的值放入声明“email”中,然后将“signInNames”输出到令牌(依赖方部分)......这是空的。在依赖方部分,使用 outputClaim “email”,而不是 signInNames。
  • 感谢 Jas Suri,我已尝试使用此依赖方设置 仍然没有运气。我想知道这里还有什么我想念的吗?或者任何带有电子邮件 ID 属性的样本包都会非常有帮助,请问?再次感谢。
  • 模式总是一样的。确定声明的持久属性,将其输出到读取技术配置文件和依赖方部分。
  • 感谢 Jas Suri,刚刚注意到我们在 SignUpOrSignin.xml RelyingParty outputcliam 中的一些默认值时的有效性,我可以看到它在 SAML 响应中返回默认值。否则根本没有 SAML 响应属性。你能建议它从哪里读到这个吗?
猜你喜欢
  • 1970-01-01
  • 2015-09-09
  • 1970-01-01
  • 1970-01-01
  • 2021-08-19
  • 1970-01-01
  • 1970-01-01
  • 2022-08-03
  • 1970-01-01
相关资源
最近更新 更多