【发布时间】:2020-04-25 09:31:02
【问题描述】:
希望有人能对以下问题有所了解;
我有一个使用 Azure B2C 对用户进行身份验证的 Angular 和 .Net 核心 Web API 应用程序。 用户帐户由用户自己通过登录/注册自定义策略创建,或者管理员可以使用 Graph API 通过应用程序创建帐户。
由于要求,应用程序使用用户名(而不是电子邮件地址)登录应用程序。到目前为止,除了以下情况之外,我已经设法让一切正常:
通过 Graph API 创建帐户时,该帐户的所有者无法重置该帐户的密码。错误是“找不到提供的用户 ID 的帐户”。
通过自定义注册策略创建的帐户并非如此,因此我进行了一些比较,发现对于通过 Graph API 创建的帐户,电子邮件丢失(可以在用户下找到 - > 身份验证方法)。我查看了填充该字段,但似乎“邮件”属性是“只读”(不确定这是否是正确的属性)。
目前,我必须通过 Azure 手动设置电子邮件,以便在必要时由其所有者重置这些帐户的密码。这显然不理想,想看看是否有人可能已经解决了这个问题,或者至少得到确认这确实是 Graph API 的限制。
提前感谢您的帮助
【问题讨论】:
-
我没有官方确认,但这似乎是一个限制。我一直在努力解决您遇到的问题,并在这里发现了一些(大多数是较旧的)帖子表明这是真的。您可以使用 Graph API 填充“备用电子邮件”字段,但这样做似乎没有任何价值。 (用户不能使用该电子邮件地址来重置密码。)我还没有看到通过 Graph 填充“电子邮件”字段的任何方法,并且当您“获取”用户时,在 Json 中找不到该值(如果您已通过 Azure 控制台手动填充它)。
-
是的,我也是这么想的 feffrotman。我只是想从其他人那里得到意见,这样至少我知道我没有遗漏一些明显的东西。然而,我对 Jas Suri 提出的“hack”很感兴趣。今天可能会试一试,看看我能不能到任何地方。
-
另外,有点离题(如果违反 SO 规则,很高兴提出另一个问题) - 你们中的任何人在第一次登录时是否遇到过严重的延迟?每次导航到应用程序并登录时,都会花费大量时间。我们的自定义策略确实会进行一些 http 调用来检索有关用户的一些信息,但这些调用非常快。此外,一旦登录,注销和重新登录非常快。几乎就像 B2C 不是处于“永远在线”模式之类的事情。
标签: azure-ad-b2c azure-ad-graph-api