Azure ad b2c Can';t通过Graph API重置B2C帐户密码创建
希望有人能对下面的事情有所启发 我得到了一个Angular和.Net核心Web API应用程序,它使用Azure B2C对用户进行身份验证。 用户帐户由用户自己通过登录/注册自定义策略创建,或者管理员可以使用Graph API通过应用程序创建帐户 由于这些要求,应用程序使用用户名(而不是电子邮件地址)登录到应用程序。到目前为止,除了以下场景外,我已设法使所有内容正常工作: 通过Graph API创建帐户时,该帐户的所有者无法重置帐户的密码。错误是“无法找到提供的用户ID的帐户” 对于通过自定义注册策略创建的帐户,情况并非如此,因此我进行了一些比较,发现对于通过Graph API创建的帐户,电子邮件丢失(可以在用户->身份验证方法下找到)。我查看了填充该字段的情况,但“邮件”属性似乎是“只读”(不确定该属性是否正确) 目前,我必须通过Azure手动设置电子邮件,以便在必要时由其所有者重置这些帐户的密码。这显然是不理想的,我们想看看是否有人可以绕过这个问题,或者至少可以确认这确实是Graph API的一个限制Azure ad b2c Can';t通过Graph API重置B2C帐户密码创建,azure-ad-b2c,azure-ad-graph-api,Azure Ad B2c,Azure Ad Graph Api,希望有人能对下面的事情有所启发 我得到了一个Angular和.Net核心Web API应用程序,它使用Azure B2C对用户进行身份验证。 用户帐户由用户自己通过登录/注册自定义策略创建,或者管理员可以使用Graph API通过应用程序创建帐户 由于这些要求,应用程序使用用户名(而不是电子邮件地址)登录到应用程序。到目前为止,除了以下场景外,我已设法使所有内容正常工作: 通过Graph API创建帐户时,该帐户的所有者无法重置帐户的密码。错误是“无法找到提供的用户ID的帐户” 对于通过自定义注
提前感谢您的帮助
邮件
属性与身份验证方法下的电子邮件
不同,目前没有此类图形api来设置身份验证方法下的电子邮件
值
顺便说一句,没有必要为用户创建Azure AD B2C用户,因为用户可以自己注册。问题在于,正如您所确定的,注册策略使用strongAuthEmail属性为基于用户名的帐户存储已验证的电子邮件。密码重置策略将使用它来验证用户是否拥有用户名。使用graph api创建用户时,不能填充此字段,因为它没有公开。唯一的选择是使用自定义策略,将此安全电子邮件存储在扩展属性中,然后您创建的graph api用户也可以将相同的属性作为目标,以允许星星对齐。因此,我使用Jas Suri概述的方法成功地实现了这一点。这些是我经历的步骤
如果有人遇到这个问题,很乐意提供更多细节 我没有官方的确认,但这似乎是一个限制。我一直在苦苦思索你到底遇到了什么,并且在这里发现了一些(大部分是旧的)帖子,表明这是真的。您可以使用Graph API填充“Alternate Email”字段,但这样做似乎没有任何价值。(用户无法使用该电子邮件地址重置密码。)我还没有看到任何通过图形填充“email”字段的方法,当您“获取”用户时,在Json中找不到该值(如果您通过Azure控制台手动填充)。是的,我也这么认为。我只是想从其他人那里得到意见,这样至少我知道我没有遗漏一些明显的东西。不过,我对Jas Suri提到的提议中的“黑客”很感兴趣。也许今天可以试一试,看看我是否有进展。另外,有点离题(如果违反SO规则,很高兴提出另一个问题)-你们中有人在第一次登录时经历了重大延迟吗?每次用户导航到应用程序并登录时,都会花费大量的时间。我们的自定义策略确实会进行一些http调用来检索有关用户的一些信息,但是这些调用速度非常快。此外,一旦登录,注销和重新登录的速度相当快。几乎就像B2C不是一种“永远在线”的模式。谢谢分享这个选项。我们已经使用自定义策略,所以我会尝试一下,让你们知道它是如何进行的。嗨@Pilsen,你介意分享更多关于你在上面分享的步骤的细节吗?我一直在努力解决同样的问题,如果能得到任何帮助,我将不胜感激。Thanks@AkanmuSola很乐意帮忙。你走过我在上面摆姿势的那些步骤了吗。我需要更多信息,请告诉我,我会把它放在这里。我已经有一段时间没有这样做了,但应该能够追溯我的步骤谢谢你的反馈,我终于让它工作了,你分享的步骤真的很有帮助。谢谢