希望有人可以阐明以下问题;
我有一个使用Azure B2C对用户进行身份验证的Angular&.Net核心Web API应用程序。用户帐户由用户自己通过登录/注册自定义策略创建,或者管理员可以使用Graph API通过应用程序创建帐户。
由于要求,该应用程序使用用户名(而不是电子邮件地址)登录到该应用程序。到目前为止,除以下情况外,我已经成功完成了所有工作:
[通过Graph API创建帐户时,该帐户的所有者无法重设该帐户的密码。错误是“找不到提供的用户ID的帐户”。
对于通过自定义注册策略创建的帐户不是这种情况,因此我进行了一些比较,发现对于通过Graph API创建的帐户,电子邮件丢失了(可以在用户->下找到身份验证方法)。我看着填充该字段,但看起来“邮件”属性为“只读”(不确定是否仍然是正确的属性)。
目前,我必须通过Azure手动设置电子邮件,以便那些帐户的密码可以由所有者重新设置。这显然不是理想的,并且想查看是否有人解决了这个问题,或者至少可以确认这确实是Graph API的局限性。
感谢您的帮助
问题已经确定,注册策略使用strongAuthEmail属性为基于用户名的帐户存储经过验证的电子邮件。密码重置策略将使用此密码来验证用户拥有用户名。使用图形API创建用户时,您无法填充此字段,该字段不会公开。唯一的选择是使用自定义策略,该策略将此安全电子邮件存储在扩展属性中,然后您的图api创建用户也可以将同一属性作为目标以允许星标对齐。
因此,我设法使用Jas Suri概述的方法来完成这项工作。这些是我经历的步骤
就是这样。现在,如何创建帐户都无所谓,电子邮件地址将存储在extension属性中,并且密码重置将能够使用该属性找到该帐户。
如果有人遇到此问题,愿意提供更多详细信息。