Azure AD B2C 在自定义策略中将声明添加到 id_token
Azure AD B2C Add Claims to id_token in custom policy
我已经根据 Active Directory B2C custom policy starter pack 社交和本地帐户的示例创建了社交和本地帐户的自定义策略。我已经启用了 Microsoft 和 Google 的登录并测试了两者是否有效,我还启用了使用本地帐户登录。
当我 log in with google 我得到以下声明时
exp,nbf,ver,iss,sub,aud,acr,nonce,iat,auth_time,email,given_name,family_name,name,idp,at_hash
当我登录 custom Azure AD tenant 时,声明集丢失 'email',但电子邮件列在 'name' 声明中
exp,nbf,ver,iss,sub,aud,acr,nonce,iat,auth_time,given_name,family_name, name,idp,at_hash
当我以本地帐户登录时,声明集丢失了 'email' 并且任何字段中都没有列出电子邮件。
exp,nbf,ver,iss,sub,aud,acr,nonce,iat,auth_time,given_name, family_name,name,at_hash
最后,当我查看 B2C 管理员中的用户列表时,这些都是不同的用户条目...即使电子邮件地址相同。所以我有 2 个问题,
- 如何在 id_token
中获得一致的声明集
- 如何在注册时link所有这些帐户(相同的 UPN)
我相信这些可能是相关的,这就是为什么我把它们放在一起问的原因。
您可能想查看策略,但我向您保证它们与入门包中的策略完全相同,我所做的只是更改租户名称并在信任框架扩展文件中添加 google 和 azure .
对于 Azure AD 电子邮件声明,将以下内容<OutputClaim />
添加到 Azure AD OpenID Connect 技术配置文件中:
<OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="unique_name" />
对于本地帐户电子邮件声明,将以下内容 <OutputClaim />
添加到 AAD-UserReadUsingObjectId
技术配置文件中:
<OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="signInNames.emailAddress" />
我已经根据 Active Directory B2C custom policy starter pack 社交和本地帐户的示例创建了社交和本地帐户的自定义策略。我已经启用了 Microsoft 和 Google 的登录并测试了两者是否有效,我还启用了使用本地帐户登录。
当我 log in with google 我得到以下声明时
exp,nbf,ver,iss,sub,aud,acr,nonce,iat,auth_time,email,given_name,family_name,name,idp,at_hash
当我登录 custom Azure AD tenant 时,声明集丢失 'email',但电子邮件列在 'name' 声明中
exp,nbf,ver,iss,sub,aud,acr,nonce,iat,auth_time,given_name,family_name, name,idp,at_hash
当我以本地帐户登录时,声明集丢失了 'email' 并且任何字段中都没有列出电子邮件。
exp,nbf,ver,iss,sub,aud,acr,nonce,iat,auth_time,given_name, family_name,name,at_hash
最后,当我查看 B2C 管理员中的用户列表时,这些都是不同的用户条目...即使电子邮件地址相同。所以我有 2 个问题,
- 如何在 id_token 中获得一致的声明集
- 如何在注册时link所有这些帐户(相同的 UPN)
我相信这些可能是相关的,这就是为什么我把它们放在一起问的原因。 您可能想查看策略,但我向您保证它们与入门包中的策略完全相同,我所做的只是更改租户名称并在信任框架扩展文件中添加 google 和 azure .
对于 Azure AD 电子邮件声明,将以下内容<OutputClaim />
添加到 Azure AD OpenID Connect 技术配置文件中:
<OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="unique_name" />
对于本地帐户电子邮件声明,将以下内容 <OutputClaim />
添加到 AAD-UserReadUsingObjectId
技术配置文件中:
<OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="signInNames.emailAddress" />