使用 azure b2c 跳过密码重置的电子邮件验证步骤

时间:2021-04-13 16:27:27

标签: c# azure cloud azure-ad-b2c azure-ad-b2c-custom-policy

我想跳过重置密码时的电子邮件验证,而是在允许用户定义新密码之前进行 API 调用。

我尝试替换下面的第一步

<OrchestrationStep Order="1" Type="ClaimsExchange">
  <ClaimsExchanges>
    <ClaimsExchange Id="PasswordResetUsingEmailAddressExchange" TechnicalProfileReferenceId="LocalAccountDiscoveryUsingEmailAddress" />
  </ClaimsExchanges>
</OrchestrationStep>

<OrchestrationStep Order="1" Type="ClaimsExchange">
  <ClaimsExchanges>
    <ClaimsExchange Id="UserReadUsingEmailAddressExchange" TechnicalProfileReferenceId="AAD-UserReadUsingEmailAddress" />
  </ClaimsExchanges>
</OrchestrationStep>

但得到以下错误

AADB2C90037:处理请求时出错。请联系您尝试访问的站点的管理员。关联 ID:6ffea2fd-bc28-4d7c-8a92-abe63f3e5b54 时间戳:2021-04-13 14:42:24Z

关于我获得的应用洞察

异常消息:处理请求时出错。请联系您尝试访问的站点的管理员。异常类型:PolicyException,CorrelationID:6ffea2fd-bc28-4d7c-8a92-abe63f3e5b54

有人知道怎么做吗?

非常感谢

1 个答案:

答案 0 :(得分:0)

Disable Email Verification

将此概念应用于密码重置过程的相应技术配置文件。您根本不需要修改用户旅程。

<ClaimsProvider>
  <DisplayName>Local Account</DisplayName>
  <TechnicalProfiles>
    <TechnicalProfile Id="LocalAccountDiscoveryUsingEmailAddress">
      <Metadata>
        <Item Key="EnforceEmailVerification">false</Item>
      </Metadata>
    </TechnicalProfile>
  </TechnicalProfiles>
</ClaimsProvider>

Call a REST API 来自您的旅程。

以下参考介绍了如何阅读和理解自定义政策。 https://github.com/azure-ad-b2c/azureadb2ccommunity.io/wiki/LocalAccount-Sign-In-and-Sign-Up-policy