Azure AD B2C - 将 PasswordReset 策略直接配置到用于注册/登录的自定义策略中

时间:2021-03-02 10:07:40

标签: azure-ad-b2c azure-ad-b2c-custom-policy

在 Azure AD B2C 中,当用户单击“忘记/重置”密码时,B2C 会将用户重定向回依赖方(Web 应用程序),并出现以下错误:

AADB2C90118: The user has forgotten their password.
Correlation ID: 124dd908-e181-408f-a363-ecbd46aa9d8e

网络应用 (RP) 应读取错误代码并通过将用户重定向回 B2C 来做出反应,指定要使用的 PasswordReset 政策。这是设计使然,并记录在 AAD B2C 官方文档中。

就我们而言,我们有许多网络应用共享相同的自定义策略(SUSI 和 PasswordResest),以提供通用的登录体验。

我想将 PasswordReset 政策直接选择/配置到我们的自定义政策中以进行登录。我想避免用户被重定向回应用程序,然后应用程序决定使用什么 PasswordReset 策略。

这可以在 B2C 中实现吗?

3 个答案:

答案 0 :(得分:1)

据我所知不是。唯一正确的处理方法是通过应用程序进行处理,正如您已经描述的那样,也根据文档:https://docs.microsoft.com/en-us/azure/active-directory-b2c/add-password-reset-policy?pivots=b2c-custom-policy

但是,根据您的身份设置的实施和整体情况,您可以尝试使用“技巧” - 创建一个自定义 UI HTML 模板,其中将包含您选择的密码重置策略的 URL(静态 URL)模板)并隐藏(或禁用,如果您使用自定义策略)返回到应用程序处理的原始“忘记密码”链接。将该模板附加到政策 - https://docs.microsoft.com/en-us/azure/active-directory-b2c/customize-ui-with-html?pivots=b2c-custom-policy

不过,这可能不起作用或不适合每种设置。如果您打开一个策略,然后流程以不同的策略结束,您可能会在应用程序中出现意外行为。我自己认为这是一种相当糟糕的做法,并劝阻人们在我工作的地方使用它。但如果你真的需要这样的东西,你可以考虑一下。

答案 1 :(得分:1)

是的,它是 possible

“默认情况下,当您创建注册或登录策略(使用本地帐户)时,您会在体验的第一页看到忘记密码?链接。单击此链接不会自动触发密码重置策略。相反,错误代码 AADB2C90118 会返回给您的应用。您的应用需要通过调用特定的密码重置策略来处理此错误代码。

此政策演示了如何将密码重置流程嵌入注册或登录政策的一部分。因此,Azure AD B2C 不会返回 AADB2C90118 错误消息。

答案 2 :(得分:0)

从 2021 年 3 月开始,“自助服务密码重置”是推荐选项。我原帖中描述的先前方法不被视为遗留方法。

自助服务密码重置官方文档: https://docs.microsoft.com/en-gb/azure/active-directory-b2c/add-password-reset-policy?pivots=b2c-custom-policy

基本上,我上面所问的不仅现在是可能的,而且这也是推荐的方法