Azure ad b2c 在azure ad b2c中获取电子邮件(用户名),并像社交帐户一样使用AzureAd登录

Azure ad b2c 在azure ad b2c中获取电子邮件(用户名),并像社交帐户一样使用AzureAd登录,azure-ad-b2c,Azure Ad B2c,我正在使用SocialAndLocalAccounts包中的自定义策略启动包使用Azure Active Directory帐户登录 我用自定义属性自定义了流,它对我来说很好。 我需要接收用于登录的电子邮件(用户名=电子邮件) 在RelyingParty中,我有这个输出声明 <OutputClaim ClaimTypeReferenceId = "signInName" /> <OutputClaim ClaimTypeReferenceId = "signInNames.em

我正在使用SocialAndLocalAccounts包中的自定义策略启动包使用Azure Active Directory帐户登录

我用自定义属性自定义了流,它对我来说很好。 我需要接收用于登录的电子邮件(用户名=电子邮件)

在RelyingParty中,我有这个输出声明

<OutputClaim ClaimTypeReferenceId = "signInName" />
<OutputClaim ClaimTypeReferenceId = "signInNames.emailAddress" PartnerClaimType = "email" />
<OutputClaim ClaimTypeReferenceId = "otherMails" />

当用户使用本地b2c帐户登录时,我会收到电子邮件 在“签名名”和“电子邮件”声明中, 但是当用户使用AzureAd帐户登录时,声明是空的

我怎样才能收到电子邮件? 我必须如何编写自定义策略(TrustFrameworkBase和TFExtensions)


您能帮助我吗?

首次登录Azure广告标识时,您必须将Azure广告发布的upn声明映射到Azure广告B2C使用的电子邮件声明,以便此电子邮件声明可以:

  • 作为user对象中的otherMails属性写入Azure AD B2C目录
  • Azure AD B2C在ID令牌中向客户端应用程序颁发
  • 要将Azure AD发布的upn声明映射到Azure AD B2C使用的电子邮件声明,请在Azure AD身份验证技术配置文件中添加新的

    
    普通的
    普通AAD
    多租户AAD
    ...
    ...
    ...
    
    通过调用将电子邮件声明转换为其他邮件声明,然后将其他邮件声明保存到用户对象

    要向您的客户端应用程序发出ID令牌中的电子邮件声明,请向依赖方技术配置文件添加新的

    
    保单简介
    ...
    ...
    ...
    
    上一次输出中的“电子邮件”是什么声明:PartnerClaimType=“emails”?对于本地Azure AD用户,此操作有效:,但需要联合用户。我如何将这两者结合起来才能发挥作用?现在我把它们都加上了,这似乎有效,这是正确的方法吗?