【问题标题】:Unable to retrieve user email from Azure AD B2C using GraphAPI无法使用 Graph API 从 Azure AD B2C 检索用户电子邮件
【发布时间】:2018-03-10 23:55:31
【问题描述】:

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

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

https://graph.windows.net/<tenantid>/users?api-version=1.6

我能够获取新用户的所有其他信息,例如用户名、名字、姓氏等...除了用户在电子邮件验证期间输入的电子邮件地址。

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

【问题讨论】:

  • 您检查了otherMails 属性吗?那里有什么价值观吗?
  • 它以空数组的形式出现。当我在 Azure 门户中看到时,电子邮件 ID 在授权电子邮件字段中可用。

标签: azure azure-ad-b2c azure-ad-graph-api


【解决方案1】:

在用户使用用户名+邮箱验证登录的情况下,无法找回使用的邮箱

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

  • 基于电子邮件登录的本地帐户:电子邮件可通过signInNames 属性获得
  • 使用基于用户名的登录 + 电子邮件验证的本地帐户:电子邮件在任何地方都不可用。
  • 通过built-in policies 的社交 IdP:电子邮件(如果可从 IdP 获得)可通过 otherMails 属性获得。

其他注意事项:

  • 用于 MFA 和密码重置的电子邮件也无法在任何地方使用(这与使用基于用户名的登录 + 电子邮件验证的本地帐户实际上相同)。
  • 您可以在sign up policy's "Sign-up attributes" 中提示用户输入他们的电子邮件。
  • 使用 custom policies 和自定义 IdP,是否要检索电子邮件、从何处检索以及存储电子邮件的位置完全取决于您。

您可以随时通过Azure AD B2C feedback forum 请求为您的场景或任何其他问题提供电子邮件

【讨论】:

  • 一个简洁(和荒谬)的总结​​。我会注意,如果您使用本地帐户用户名登录,您似乎无法覆盖关联的电子邮件(至少通过使用 Graph 的“邮件”或“其他邮件”属性 - 我可能会尝试添加它到 signInNames 作为最后的手段),这意味着用户将永远无法使用内置的密码重置策略,除非他们仍然可以访问他们注册时使用的原始电子邮件地址。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-08-10
  • 1970-01-01
  • 2021-06-19
  • 1970-01-01
  • 2017-11-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多