当用户尝试重置密码时,Azure B2C 会给人一种错误的印象,认为用户位于该目录中。
重置密码的步骤如下: 1) 用户点击重置密码链接
2) B2C 呈现一个带有“电子邮件地址”字段的页面,并显示“需要验证。请点击发送按钮。”
3) 用户输入电子邮件地址并点击“发送验证码”
4) B2C 向该电子邮件地址发送验证码(即使没有用户与该电子邮件地址关联。这是用户认为他在系统中注册的地方)
5)现在用户输入收到的验证码并点击“验证码”
6) B2C 验证了代码并显示“电子邮件地址已验证。您现在可以继续”(这是他们确信自己存在于系统中的步骤)
7) 现在,当用户单击“继续”时,他们会收到错误“找不到所提供的用户 ID 的帐户”。如屏幕截图所示。
确认与用户无关的电子邮件会让他们完全困惑。 我发现this解决方案,但不知道如何与我的 current policy 一起使用这些策略
最佳答案
基于this solution ,您需要使用以下 XML 片段来实现它:
<Action Id="SendCode">
<ValidationClaimsExchange>
<ValidationClaimsExchangeTechnicalProfile TechnicalProfileReferenceId="AAD-UserReadUsingEmailAddress-emailAddress" />
<ValidationClaimsExchangeTechnicalProfile TechnicalProfileReferenceId="AadSspr-SendCode">
<Preconditions>
<Precondition Type="ClaimsExist" ExecuteActionsIf="false">
<Value>objectId</Value>
<Action>SkipThisValidationTechnicalProfile</Action>
</Precondition>
</Preconditions>
</ValidationClaimsExchangeTechnicalProfile>
</ValidationClaimsExchange>
</Action>
因此,您应该首先将“emailVerificationControl”添加到“LocalAccountDiscoveryUsingEmailAddress”技术配置文件中。
只需添加 line 163-165到后面的地方line 890 .
并且您需要添加 DisplayControls到您的 TrustFrameworkExtensions.xml 文件中,以便可以引用它。
如果还有其他引用,也应该添加到相应的位置。
关于azure - 当用户未在 Azure AD B2C 中注册时避免通过电子邮件发送验证码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60975989/