azure - 当用户未在 Azure AD B2C 中注册时避免通过电子邮件发送验证码

标签 azure azure-active-directory azure-ad-b2c

当用户尝试重置密码时,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/

相关文章:

azure - 热衷于获取 Azure 函数应用程序中每个函数的 Azure 函数成本?

azure - Azure 上的 Drupal 性能

azure - Azure Functions 中的个人 One Drive Microsoft Graph 绑定(bind)

azure-ad-b2c - Azure B2C 自定义策略 : Invalid request the provided id_token_hint parameter does not contain an accepted issuer

java - Azure VM 无法连接到 Azure SQL 服务

azure - 无法从 AAD 获取不记名 token 来使用 Web API

java - 如何在没有客户端 key 的情况下仅使用客户端 ID 和租户 ID 使用 Azure 广告?

Azure AD B2C 审核 API

openid-connect - OpenID 连接中的 cookie 范围

azure - 使用哪个 Nuget 来创建 AAD 应用程序?