我正在使用自定义策略,以便集成Azure B2C AD。我需要能够使用单点登录到Microsoft企业帐户。尽管如此,我仍然能够使它工作,但它没有返回包含我的令牌的电子邮件。
这是我所做的:
有人知道为什么它不起作用吗?预先谢谢你!
答案 0 :(得分:1)
似乎“电子邮件”声明是由自定义OutputClaimsTransformation返回的,该示例的配置不可用。
您需要动态创建电子邮件声明。
请参阅this thread,其中提供了针对您情况的解决方法。
答案 1 :(得分:1)
您必须从Azure AD发出的 upn 声明中映射到Azure AD B2C使用的电子邮件声明(按照惯例,该声明应映射到工作帐户的电子邮件地址),如下所示:
<ClaimsProvider>
<Domain>commonaad</Domain>
<DisplayName>Common AAD</DisplayName>
<TechnicalProfiles>
<TechnicalProfile Id="Common-AAD">
<DisplayName>Multi-Tenant AAD</DisplayName>
<Protocol Name="OpenIdConnect" />
...
<OutputClaims>
...
<OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="upn" />
</OutputClaims>
...
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
The AAD-UserWriteUsingAlternativeSecurityId technical profile通过调用the CreateOtherMailsFromEmail claims transformation将此 email 声明添加到 otherMails 声明中,然后将 otherMails 声明保存到用户对象。