Azure AD B2C密码到期

时间:2017-11-01 09:14:03

标签: azure azure-active-directory azure-ad-b2c

我们在我们的解决方案中使用 Azure AD B2C ,并使用"注册或登录"政策。定期(我没有计算确切的天数),当我尝试登录时,我得到:"用户名或密码无效"。我必须重置密码才能使其正常工作。

所以我有两个问题:

  • 是否有默认密码到期政策? Azure B2C Connect上的功能请求之一是启用此类自定义过期策略的定义,但我没有在文档中找到默认设置到位的事实。有没有办法删除此默认行为(即没有过期)?

  • 消息"用户名或密码无效"是误导性,应该是"您的密码已过期"。有什么方法可以改变吗?

Thx!

1 个答案:

答案 0 :(得分:4)

  

是否有默认密码过期策略?

对于B2C本地帐户:

注意:只能通过注册或AAD Graph API创建本地帐户。您无法通过单击AAD中的新用户来创建它,该用户是B2C租户。

默认情况下,本地帐户没有密码过期策略。 Azure AD B2C的注册,注册或登录以及密码重置策略使用"强"密码强度,并且不会使Azure AD B2C中的任何密码到本地帐户到期。您可以在this FAQ中看到这一点。

然而,您可能会遇到一些B2C本地帐户用户密码过期的情况。

  • 默认情况下,如果本地帐户是通过内置密码策略创建的,则此策略会将passwordPolicies属性设置为DisablePasswordExpiration。因此B2C本地用户的密码不会过期。

  • 但是,如果本地帐户是由自定义策略或Azure AD Graph API创建的,则必须手动将passwordPolicies属性设置为DisablePasswordExpiration

那么,如果您的本地用户'如果您未将密码政策的属性设置为DisablePasswordExpiration,则密码可能会在90天后过期,恕不另行通知。

  

有没有办法删除此默认行为(即没有过期)?消息"无效的用户名或密码"是误导性的,应该是"您的密码已过期"。有什么方法可以改变吗?

本地帐户的解决方案:

  1. 您可以通过AAD Graph API参考this example创建没有密码到期的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": "joeconsumer@gmail.com"
        }
    ],
    "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"
    }
    
  2. 通过AAD Graph API使用 DisablePasswordExpiration 方法将受影响用户的密码策略属性更新为PATCH,您可以参考{{ 3}}更新您的b2c用户。

  3. 要求所有受影响的B2C用户更改密码。

  4. 对于社交帐户:

    密码过期取决于身份提供商的密码策略。 this documentation

    仅适用于工作帐户或学校帐户的AAD密码到期政策。可用的密码策略设置,可应用于在Azure AD中创建和管理的用户帐户。

    因此,如果您将AAD作为AAD B2C的社交帐户,则密码过期策略将影响这些社交帐户。

    AAD社交帐户的解决方案:

    如果您的帐户是Azure AD中的社交帐户,请使用您的公司管理员凭据连接到该租户。 执行以下命令之一:

    1. 要将一个用户的密码设置为永不过期,请使用用户主体名称(UPN)或用户的用户ID运行以下cmdlet:Set-MsolUser -UserPrincipalName <user ID> -PasswordNeverExpires $true

    2. 要将组织中所有用户的密码设置为永不过期,请运行以下cmdlet:Get-MSOLUser | Set-MsolUser -PasswordNeverExpires $true

    3. 您可以在AAD can also be an identity provider in AAD B2C中看到有关Azure AD中密码策略的更多详细信息。