无法使用GraphAPI从Azure AD B2C检索用户电子邮件

无法使用GraphAPI从Azure AD B2C检索用户电子邮件,azure,azure-ad-b2c,azure-ad-graph-api,Azure,Azure Ad B2c,Azure Ad Graph Api,我已经创建了一个Azure AD B2C租户,并使用用户名作为登录方法配置了本地帐户。我创建了一个注册策略,并通过Azure AD B2C注册屏幕进行了注册。在注册屏幕中,我输入了一个电子邮件地址,Azure AD B2C发送了一封电子邮件进行验证。注册成功后,我试图通过Graph API获取注册用户的详细信息 用于检索用户详细信息的图形API URL: https://graph.windows.net/<tenantid>/users?api-version=1.6 https

我已经创建了一个Azure AD B2C租户,并使用用户名作为登录方法配置了本地帐户。我创建了一个注册策略,并通过Azure AD B2C注册屏幕进行了注册。在注册屏幕中,我输入了一个电子邮件地址,Azure AD B2C发送了一封电子邮件进行验证。注册成功后,我试图通过Graph API获取注册用户的详细信息

用于检索用户详细信息的图形API URL:

https://graph.windows.net/<tenantid>/users?api-version=1.6
https://graph.windows.net//users?api-版本=1.6
我能够获得新用户的所有其他信息,如用户名、名字、姓氏等。。。用户在电子邮件验证期间输入的电子邮件地址除外


请告诉我是否有任何方法或配置可通过Graph API获取电子邮件地址。

如果用户使用用户名+电子邮件验证登录,则无法检索所使用的电子邮件

以下是Azure AD B2C中与电子邮件相关的所有案例及其存储位置

  • 基于电子邮件登录的本地帐户:可通过
    signInNames
    属性使用电子邮件
  • 具有基于用户名登录+电子邮件验证的本地帐户:电子邮件在任何地方都不可用
  • 社交IdP via:如果IdP提供电子邮件,则可通过
    otherMails
    属性使用
其他考虑:

  • 用于MFA和密码重置的电子邮件在任何地方都不可用(这实际上与基于用户名登录+电子邮件验证的本地帐户的情况相同)
  • 您可以在电子邮件中提示用户发送电子邮件
  • 使用和自定义IDP,是否检索电子邮件、从何处检索以及在何处存储电子邮件实际上取决于您

您始终可以通过

请求为您的场景或任何其他请求提供电子邮件。您是否检查了
其他邮件
属性?那里有值吗?它是空数组。当我在Azure portal中看到时,电子邮件id在授权电子邮件字段中可用。一个简洁(而且荒谬)的摘要。我会注意到,在使用localaccount用户名登录的情况下,您似乎无法覆盖关联的电子邮件(至少通过使用Graph的“mail”或“OtherMail”属性,我可能会尝试将其添加到signInNames中,作为最后的手段)这意味着用户将永远无法使用内置密码重置策略,除非他们仍然可以访问他们注册的原始电子邮件地址。