2017-10-06 85 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租戶聯合進行身份驗證? –

相關問題