azure - 首次登录时不提示更改密码
问题描述
我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
即使在第一次登录时也是如此。
解决方案
目前应该是一个限制。
您可以参考之前的类似帖子了解登录策略。登录策略通过向 Azure AD B2C 目录发送grant_type=password
请求来验证用户凭据。如果该forceChangePasswordNextLogin
属性设置为true
,此请求将返回“user_password_expired”错误。登录策略通过显示“无效的电子邮件地址/用户或密码”错误来处理此错误。
因此,正如 Chris Padgett 建议的那样,您可以创建一个自定义属性(例如ForceResetPasswordNextLogin),true
在创建本地帐户时将其设置为,然后将其作为应用程序声明从登录策略发布到您的 B2C 应用程序。
登录后,如果设置为true
,则您的 B2C 应用程序可以启动密码重置策略。密码重置后,您的 B2C 应用程序可以将其设置为false
.
自定义策略也是一种选择。
推荐阅读
- python - 填充任意形状的 numpy ndarray(最好不使用 for 循环)
- jquery - jquery Datepicker不适用于除第一行以外的html表行
- c# - 有没有办法使用 C# 在 Excel 中模仿格式刷?
- javascript - 提取PostgreSQL语法规则
- javascript - 在 OOP 中使用 Angular
- angular - 使用 Angular 在 HTTP 调用中获取表单数据
- python - 如何使用 python3 在 b'\\xe5' 和 b'\xe5' 之间转换?
- amazon-web-services - 获取文件内容作为 Terraform 输出
- javascript - 从 FIrebase 实时数据库中获取数据
- react-native-firebase - 链接帐户时如何从“auth/credential-already-in-use”错误中恢复