首页 > 解决方案 > 首次登录时不提示更改密码

问题描述

Graph API用来创建用户,这就是我创建用户的方式

 let payload = {
    "displayName": value.data.displayName,
    "identities": [
      {
        "signInType": "userName",
        "issuer": "{tenantName}.onmicrosoft.com",
        "issuerAssignedId": value.data.memberNumber
      },
      {
        "signInType": "emailAddress",
        "issuer": "{tenantName}.onmicrosoft.com",
        "issuerAssignedId": value.data.email
      }
    ],
    "passwordProfile": {
      "forceChangePasswordNextSignIn": true,
      "password": value.password
    },
    "passwordPolicies": "DisableStrongPassword"
  }

"forceChangePasswordNextSignIn": true当我使用in创建用户时passwordProfile,我总是得到如下图所示的错误,password has expired即使在第一次登录时也是如此。

在此处输入图像描述

标签: azureazure-ad-b2cazure-ad-graph-api

解决方案


目前应该是一个限制。

您可以参考之前的类似帖子了解登录策略。登录策略通过向 Azure AD B2C 目录发送grant_type=password请求来验证用户凭据。如果该forceChangePasswordNextLogin属性设置为true,此请求将返回“user_password_expired”错误。登录策略通过显示“无效的电子邮件地址/用户或密码”错误来处理此错误。

因此,正如 Chris Padgett 建议的那样,您可以创建一个自定义属性(例如ForceResetPasswordNextLogin),true在创建本地帐户时将其设置为,然后将其作为应用程序声明从登录策略发布到您的 B2C 应用程序。

登录后,如果设置为true,则您的 B2C 应用程序可以启动密码重置策略。密码重置后,您的 B2C 应用程序可以将其设置为false.

自定义策略也是一种选择。


推荐阅读