在自定义B2C策略中使用现有的身份提供程序

时间:2020-07-27 17:05:08

标签: azure azure-ad-b2c

我们一直在使用在身份提供者页面上创建的OpenID身份提供者。该身份提供者连接到我们的Azure AD。

我们现在需要切换到自定义策略,以便我们可以在从天蓝色函数检索的令牌中包含一些附加信息。

问题在于,即使我们在自定义策略中使用了相同的openID连接信息,它仍然被视为新的身份提供者,并且任何登录的用户都将创建一个新用户,因此也将创建一个新的OID。

我们需要他们使用相同的身份提供者登录并使用相同的现有用户/ oid,但要遵循我们的自定义策略,以便我们可以将信息添加到令牌中。

1 个答案:

答案 0 :(得分:0)

我假设您正在添加Azure AD(单租户)IDP。因此,您要添加的元数据为https://login.microsoftonline.com/{tenant}/v2.0/.well-known/openid-configuration。用您的租户值替换{tenant}。另外,请确保在自定义策略中对UserID和identityprovider具有以下配置,因为在AzureAD IDP流程中,它会根据AlternativeSecurityID检查是否存在于B2C租户中,如果不存在,则它将创建新的ID,否则它将创建新的ID。传递ObjectID。

<OutputClaims>
<OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="oid"/>
<OutputClaim ClaimTypeReferenceId="identityProvider" PartnerClaimType="iss" />
</OutputClaims>
<OutputClaimsTransformations>
<OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId"/>
</OutputClaimsTransformations>

Azure AD身份验证之后,B2C调用此技术配置文件以读取B2C租户中的用户详细信息:

<TechnicalProfile Id="AAD-UserReadUsingAlternativeSecurityId">
<Metadata>
<Item Key="Operation">Read</Item>
<Item Key="RaiseErrorIfClaimsPrincipalDoesNotExist">false</Item>
</Metadata>
<InputClaims>
<InputClaim ClaimTypeReferenceId="AlternativeSecurityId" 
PartnerClaimType="alternativeSecurityId" Required="true" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="objectId" />
<OutputClaim ClaimTypeReferenceId="userPrincipalName" />
<OutputClaim ClaimTypeReferenceId="displayName" />
<OutputClaim ClaimTypeReferenceId="otherMails" />
<OutputClaim ClaimTypeReferenceId="givenName" />
<OutputClaim ClaimTypeReferenceId="surname" />
</OutputClaims>
<IncludeTechnicalProfile ReferenceId="AAD-Common" />
</TechnicalProfile>