【问题标题】:Email claims not populated with custom policies in Azure B2CAzure B2C 中未填充自定义策略的电子邮件声明
【发布时间】:2020-04-27 09:28:24
【问题描述】:

我的 Azure B2C 具有启用本地登录和 Microsoft 帐户登录的自定义策略。我已经开始使用入门包并进行了一些修改,以添加我的自定义逻辑以进行验证并添加其他声明,如 here 所述。

使用 Microsoft 帐户一切正常。但是我遇到了本地帐户登录问题。

  1. 仅在用户注册而不是登录时填充电子邮件声明。在登录的情况下,电子邮件是“signInNames.emailAddress”声明的一部分。我尝试按照herehere 的说明进行更改。我希望将电子邮件填充到电子邮件声明中,因为我的 API 使用此声明。

  2. 从我的 REST API 返回的其他校准不会添加到仅用于本地登录的令牌中。它们是为 Microsoft 帐户添加的。

谢谢。

更新:对于第 2 点,这是我的策略文件的问题,现已修复。

【问题讨论】:

    标签: azure azure-active-directory azure-ad-b2c


    【解决方案1】:

    有一个简单的方法可以返回email 声明。

    只需在您的SignUporSignIn.xml 文件中将<OutputClaim ClaimTypeReferenceId="email" /> 替换为<OutputClaim ClaimTypeReferenceId="signInNames.emailAddress" PartnerClaimType="email" />

    您需要注册新的本地用户,然后登录以进行测试。您将看到 email 声明。

    其实这个解决方案是@Wayne Yang 在你分享的post 中提供的。

    【讨论】:

    • 我试过了,还是不行。电子邮件仅用于本地登录,但不适用于 Microsoft 等社交服务提供商。
    • @user1868744 尝试同时添加<OutputClaim ClaimTypeReferenceId="email" /><OutputClaim ClaimTypeReferenceId="signInNames.emailAddress" PartnerClaimType="email" />
    • 奇怪..我以前试过这个但没有用..可能是我的政策有问题。现在可以了。。谢谢。你知道为什么邮件不作为邮件持久化吗?
    • @user1868744 这取决于索赔的返回方式。对于本地帐户,您需要从"signInNames": [ { "type": "emailAddress", "value": "*@*.com" } ]获取电子邮件
    • 在使用“使用 Apple 登录”时是否有效?
    猜你喜欢
    • 2018-03-28
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 2018-12-07
    • 1970-01-01
    • 1970-01-01
    • 2020-06-03
    • 1970-01-01
    相关资源
    最近更新 更多