2017-10-06 87 views
1

我已经为社交和本地帐户基于Active Directory B2C custom policy starter pack的示例为社交和本地帐户创建了自定义策略。我已经启用了微软和谷歌的登录功能,并测试了两者都可以工作,我也启用了使用本地帐户登录。Azure AD B2C在自定义政策中将声明添加到id_token

当我log in with google我得到下面的权利要求

EXP,NBF,版本,ISS,分,澳元,ACR,现时,IAT,auth_time,电子邮件,GIVEN_NAME,FAMILY_NAME,名称,IDP,at_hash

当我登录到custom Azure AD tenant权利要求集缺失“电子邮件”,但电子邮件的“名称”要求

EXP,NBF,版本,ISS,分,澳元上市, ACR,现时,IAT,auth_time,给予_name,FAMILY_NAME,名称,IDP,at_hash

当我登录为本地帐户组权利要求中缺少“电子邮件”,也没有在任何字段中列出的电子邮件。

EXP,NBF,版本,ISS,分,澳元,ACR,现时,IAT,auth_time,GIVEN_NAME,FAMILY_NAME,名称,at_hash

最后,当我看着用户的列表B2C管理员,这些都是不同的用户条目...即使电子邮件地址是相同的。所以,我有2个问题,

  1. 我如何获得一套统一的id_token
  2. 要求我如何在注册时所有这些帐户连接在一起的(同UPN)

我相信这些可能是相关的,这就是为什么我一起问他们。 您可能想查看策略,但我向您保证它们与入门套件中的策略完全相同,我所做的只是更改租户名称,并在信任框架扩展文件中添加Google和Azure。

+1

有一个功能请求合并所有的电子邮件在单一帐户下https://feedback.azure.com/forums/169401-azure-active-directory/suggestions/13214529-azure-ad-b2c-how-to -avoid-validate-duplicate -s Upvote there – Ramakrishna

回答

2

对于Azure的广告发来电子邮件要求,添加以下<OutputClaim />到Azure的AD ID连接技术简介:

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

对于本地帐户的电子邮件要求,添加以下<OutputClaim />AAD-UserReadUsingObjectId技术简介:

<OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="signInNames.emailAddress" /> 
+0

我似乎无法找到放置Azure AD OpenId Connect的输出声明的地方?在trustframeworkbase.xml文件中的Azure Active Directory声明提供程序下有许多技术配置文件? –

+0

将trustframeworkbase.xml文件中的更改为适用于本地帐户电子邮件声明。以下是供参考的文件:https://github.com/Azure-Samples/active-directory-b2c-custom-policy-starterpack/blob/master/SocialAndLocalAccounts/TrustFrameworkBase。xml#L725 –

+0

您能否在“当我登录到自定义Azure AD租户”时澄清您的意思?您是否与另一个Azure AD租户联合进行身份验证? –

相关问题