我们通过“注册或登录”策略在我们的解决方案中利用Azure AD B2C。定期(我没有计算确切的天数),当我尝试登录时,我得到:“无效的用户名或密码”。我必须重设密码才能使用。
所以我有两个问题:
有默认的密码过期策略吗?Azure B2C Connect上的一项功能请求是启用此类自定义过期策略的定义,但我在文档中没有发现默认设置已经存在的事实。有什么方法可以消除此默认行为(即没有过期)?
该消息“无效的用户名或密码”是误导,应该是“您的密码已过期”。有什么办法改变吗?
谢谢 !
有默认的密码过期策略吗?
注意:只能通过注册或AAD Graph API创建本地帐户。您不能通过单击BAD租户AAD中的“新用户”来创建它。
默认情况下,本地帐户没有密码过期策略。Azure AD B2C的注册,注册或登录以及密码重置策略使用“强”密码强度,并且不会使Azure AD B2C中本地帐户的任何密码失效。您可以在此常见问题解答中看到此内容。
但是,在某些情况下,您可能会遇到B2C本地帐户用户密码过期的情况。
默认情况下,如果本地帐户是通过内置密码策略创建的,则此策略会将passwordPolicies
属性设置为DisablePasswordExpiration
。因此,B2C本地用户的密码不会过期。
但是,如果本地帐户是通过自定义策略或Azure AD Graph API创建的,则必须将该passwordPolicies
属性设置为DisablePasswordExpiration
手动。
因此,如果您未将“密码”策略的属性设置为,则本地用户的密码可能在90天后过期而无须通知DisablePasswordExpiration
。
有什么办法可以消除此默认行为(即没有过期)?消息“无效的用户名或密码”具有误导性,应为“您的密码已过期”。有什么办法改变吗?
您可以参考以下示例,以通过AAD Graph API创建B2C本地用户而无需密码过期:
POST https://graph.windows.net/contosob2c.onmicrosoft.com/users?api-version=1.6
Authorization: Bearer eyJhbGciOiJSUzI1NiIsIng1dCI6IjdkRC1nZWNOZ1gxWmY3R0xrT3ZwT0IyZGNWQSIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJod...
Content-Type: application/json
Content-Length: 338
{
// All of these properties are required to create consumer users.
"accountEnabled": true,
"signInNames": [ // controls which identifier the user uses to sign in to the account
{
"type": "emailAddress", // can be 'emailAddress' or 'userName'
"value": "[email protected]"
}
],
"creationType": "LocalAccount", // always set to 'LocalAccount'
"displayName": "Joe Consumer", // a value that can be used for displaying to the end user
"mailNickname": "joec", // an email alias for the user
"passwordProfile": {
"password": "P@ssword!",
"forceChangePasswordNextLogin": false // always set to false
},
"passwordPolicies": "DisablePasswordExpiration"
}
通过AAD Graph APIDisablePasswordExpiration
使用PATCH
方法来更新受影响用户的密码策略属性,您可以参考此文档来更新b2c用户。
要求所有受影响的B2C用户更改其密码。
密码到期时间取决于身份提供者的密码策略。AAD也可以是AAD B2C中的身份提供者。
AAD密码过期策略仅适用于工作或学校帐户。可以应用于在AD中创建和管理的用户帐户的可用密码策略设置。
因此,如果将AAD作为AAD B2C的社交帐户,则密码过期策略将影响这些社交帐户。
如果您的帐户是Azure AD中的社交帐户,请使用公司管理员凭据连接到该租户。执行以下命令之一:
若要将一个用户的密码设置为永不过期,请使用用户主体名称(UPN)或用户的用户ID运行以下cmdlet: Set-MsolUser -UserPrincipalName <user ID> -PasswordNeverExpires $true
若要将组织中所有用户的密码设置为永不过期,请运行以下cmdlet: Get-MSOLUser | Set-MsolUser -PasswordNeverExpires $true
您可以在本文档中查看有关Azure AD中密码策略的更多详细信息。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句