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

Joh*_*hof 5 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"
};
Run Code Online (Sandbox Code Playgroud)

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

kga*_*lic 3

使用注册/登录策略,我必须手动实现这一点,方法是在数据库中标记用户(如果他们更改了密码),然后重定向到密码更改(如果他们没有更改密码)。

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