我的Azure B2C具有自定义策略,并且启用了本地登录和Microsoft帐户登录。我已经从入门包入手,并做了一些修改以添加我的自定义逻辑以进行验证并添加其他声明,如here所述。
一切都可以使用Microsoft帐户。但是我在本地帐户登录方面遇到了问题。
电子邮件声明仅在用户注册时填充,而在登录时不填充。如果登录,则该电子邮件属于“ signInNames.emailAddress”声明的一部分。我尝试按照说明here和here进行更改。我希望在我的API使用该声明时在电子邮件声明中填充该电子邮件。
我的REST API返回的其他calim仅针对本地登录未添加到令牌中。它们是为Microsoft帐户添加的。
谢谢。
更新:对于第2点,我的策略文件存在问题,现已修复。
答案 0 :(得分:1)
有一个简单的方法可以返回email
声明。
只需将<OutputClaim ClaimTypeReferenceId="email" />
文件中的<OutputClaim ClaimTypeReferenceId="signInNames.emailAddress" PartnerClaimType="email" />
替换为SignUporSignIn.xml
。
您需要注册新的本地用户,然后登录以对其进行测试。您将看到email
声明。
实际上,@ Wayne Yang在您共享的post中提供了此解决方案。