用户流的AD B2C forceChangePasswordNextLogin“登录v2”不会启动密码重置并阻止成功登录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用户流的AD B2C forceChangePasswordNextLogin“登录v2”不会启动密码重置并阻止成功登录相关的知识,希望对你有一定的参考价值。

我正在使用图形客户端API在Azure AD B2C中创建新用户。我发送给api的json看起来如下:

{
    "creationType": "LocalAccount",
    "passwordProfile": {
        "password": "a:898;keJPpN/69X",
        "forceChangePasswordNextLogin": true
    },
    "passwordPolicies": "DisablePasswordExpiration",
    "objectId": null,
    "accountEnabled": true,
    "displayName": "John Doe",
    "mailNickname": "john.doe",
    "signInNames": [
        {
            "type": "emailAddress",
            "value": "john.doe@provider.com"
        }
    ]
}

然后正确创建用户。但是,一旦我尝试使用流程“登录v2”登录新创建的用户,我收到以下错误消息:Invalid username or password.查看登录尝试,失败的尝试全部失败

Status: Interrupted
Sign-in error code: 50055
Failure reason: Invalid password, entered expired password.

单击“忘记密码?”启动“密码重置v2”流程。通过电子邮件确认正确触发密码重置流程。输入发送的确认码并设置新密码后,登录按预期工作。

如果我设置"forceChangePasswordNextLogin" : false,第一次登录按预期工作。但是,在这种情况下,用户不必被迫改变他的一次性密码。所以这不是一个真正的选择。同样有趣的是:当使用流程“登录”(没有v2)时,一切都按预期工作,用户被迫在第一次登录时更改密码。但是,由于此流程不支持自定义样式,因此这也不是一种选择。

在首次登录用户时,我需要做什么才能使“登录v2”流程正确触发密码更改?

答案

您可以创建true(例如ForceResetPasswordNextLogin),在创建本地帐户时将其设置为a custom attribute,然后将此作为应用程序声明从登录策略发布到您的B2C应用程序,而不是将passwordProfile.forceChangePasswordNextLogin设置为true。登录后,如果设置为true,那么您的B2C应用程序可以启动密码重置策略。密码重置后,您的B2C应用程序可以将其设置为false

你可以考虑从a custom policy包括the starter packa password change step

以上是关于用户流的AD B2C forceChangePasswordNextLogin“登录v2”不会启动密码重置并阻止成功登录的主要内容,如果未能解决你的问题,请参考以下文章

Azure AD B2C 连接的用户使用 Graph AD API 更改密码

Azure AD B2C密码更改自定义策略,用户每次都需要登录

如何在 Azure AD B2C 中管理用户流之间的单个帐户/会话

无头认证Azure AD b2c

Azure AD B2C 密码重置

Azure AD B2C:注销社交帐户(使用 OIDC 的 Azure AD)