返回电子邮件地址-自定义策略Azure B2C AD(企业帐户)

时间:2018-07-31 14:56:50

标签: azure azure-ad-b2c

我正在使用自定义策略,以便集成Azure B2C AD。我需要能够使用单点登录到Microsoft企业帐户。尽管如此,我仍然能够使它工作,但它没有返回包含我的令牌的电子邮件。

这是我所做的:

  1. 下载了启动包“ SocialAndLocalAccountsWithMfa”
  2. 我根据文章对相关文件进行了更改 下面(步骤3和4)
  3. https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-setup-commonaad-custom
  4. Return emails on custom policies

有人知道为什么它不起作用吗?预先谢谢你!

2 个答案:

答案 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 声明保存到用户对象。