我有一个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"
};
用户创建正确,但是当他们第一次登录时,我希望看到一个页面,他们被迫更改密码。
答案 0 :(得分:1)
使用注册/登录策略,我必须通过在DB中标记用户(如果他们已更改密码)然后在未更改密码的情况下重定向到密码更改来手动实现该操作。
我也找不到“开箱即用”的解决方案。我发现forceChangePasswordNextLogin仅适用于登录策略。