首次登录后如何强制更改密码

时间:2019-04-23 06:44:47

标签: c# azure azure-ad-b2c

我有一个Azure Active Directory B2C租户。我还有一个小型服务,可以从另一个系统在B2C租户中创建新用户。这样,我可以同步两个系统。将用户添加到B2C并首次登录后,我希望强制用户更改密码。但是无论我做什么,用户都可以登录并继续,而无需更改密码。

要将用户添加到B2C,我使用Microsoft Graph 1.14程序包。我将用户信息作为JSON推送到端点https://graph.windows.net/ {tenantId} /users?api-version=1.6

登录页面是用户流策略中的Azure自定义页面。如果需要,还有一个更改密码策略。

我尝试过:

  • 添加用户时,我设置了密码配置文件。添加属性“ ForceChangePasswordNextLogin”并将其设置为true无效。

  • 有人建议添加“ ForceChangePasswordNextSignIn”属性,但B2C不知道该属性。

  • 试图在策略中修复它;没用。

  • 使用过Google和StackOverflow;运气不好。

这是我发布到Microsoft Graph的用户:

var user = new GraphUserModel
{
    City = "Amsterdam",
    CustomField= "999999",
    Department = "TestPassword",
    DisplayName = "TestPassword",
    OtherMails = new[] { "myemail@something.nl" },
    PostalCode = "1234 AB",
    StreetAddress = "Hoofdweg 6",
    Surname = "TestPassword",
    TelephoneNumber = "0123456789",
    ChainCode = null,
    MailNickname = "999999",
    UserPrincipalName = "999999@{tenantNameHere}",
    SignInNames = new List<SignInNames>
    {
        new SignInNames
        {
            Type = "userName",
            Value = "999999"
        }
    },
    AccountEnabled = true,
    CreationType = "LocalAccount",
    PasswordProfile = new PasswordProfile
    {
        Password = "SomeRandomPassword"
    },
    PasswordPolicies = "DisablePasswordExpiration"
};

用户创建正确,但是当他们第一次登录时,我希望看到一个页面,他们被迫更改密码。

1 个答案:

答案 0 :(得分:1)

使用注册/登录策略,我必须通过在DB中标记用户(如果他们已更改密码)然后在未更改密码的情况下重定向到密码更改来手动实现该操作。

我也找不到“开箱即用”的解决方案。我发现forceChangePasswordNextLogin仅适用于登录策略。