我已根据社交和本地帐户的Active Directory B2C custom policy starter pack示例为社交帐户和本地帐户创建了自定义政策。我已经启用了与Microsoft和Google的登录,并测试了两者都有效,我还启用了使用本地帐户登录。
当我log in with google时,我收到以下声明
EXP,NBF,VER,ISS,子,AUD,ACR,随机数,IAT,auth_time,电子邮件,GIVEN_NAME,FAMILY_NAME,姓名,IDP,at_hash
当我登录custom Azure AD tenant时,这组声明中缺少“电子邮件”,但电子邮件列在“名称”声明中
exp,nbf,ver,iss,sub,aud,acr,nonce,iat,auth_time,given_name,family_name,name,idp,at_hash
当我以本地帐户登录时,这组索赔缺少“电子邮件”,并且没有任何字段中列出的电子邮件。
exp,nbf,ver,iss,sub,aud,acr,nonce,iat,auth_time,given_name,family_name,name,at_hash
最后,当我查看B2C管理员中的用户列表时,这些都是不同的用户条目...即使电子邮件地址相同。所以我有2个问题,
我相信这些可能是相关的,这就是我一起问他们的原因。 您可能希望查看这些策略,但我向您保证它们与初学者包中的策略完全相同,我所做的就是更改租户名称并在信任框架扩展文件中添加google和azure。
答案 0 :(得分:2)
对于Azure AD电子邮件声明,请将以下<OutputClaim />
添加到Azure AD OpenID Connect技术配置文件中:
<OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="unique_name" />
对于本地帐户电子邮件声明,请将以下<OutputClaim />
添加到AAD-UserReadUsingObjectId
技术资料中:
<OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="signInNames.emailAddress" />