我们可以使用Microsoft Graph API在B2C租户中创建Federated账户的新用户。
首先,需要获取一个有效的访问凭据才能调用Microsoft Graph API来创建用户。可以使用Client Credentials Flow或Authorization Code Flow获取访问令牌。
下面是一个示例代码,演示如何通过Microsoft Graph API在B2C中为Federated账户创建新用户。
// 1. 首先,在B2C租户中查找用户PrincipalName是否已存在。
// 如果已存在,则可以通过找到现有用户并将其添加到角色中来解决。
// 如果不存在,则创建新用户。
var userPrincipalName = "example@contoso.com";
var userExists = await graphClient.Users
.Request()
.Filter($"identities/any(c:c/issuerAssignedId eq '{userPrincipalName}' and c/issuer eq 'contoso.com')")
.GetAsync();
if (userExists.Count > 0)
{
// 将现有的用户添加到角色中。
// ...
}
else
{
// 新建用户
var newUser = new User
{
DisplayName = "New User",
Identities = new[]
{
new ObjectIdentity
{
SignInType = "emailAddress",
Issuer = "contoso.com",
IssuerAssignedId = userPrincipalName
}
},
PasswordProfile = new PasswordProfile
{
Password = "password123",
ForceChangePasswordNextSignIn = false
},
MailNickname = "example",
UserPrincipalName = userPrincipalName
};
await graphClient.Users
.Request()
.AddAsync(newUser);
}
// 2. 将用户添加到B2C自定义角色中。
var roleId = "{role id}";
var roleAssignment = new AppRoleAssignment
{
PrincipalId = newUser.Id,
AppRoleId = roleId
};
await graphClient.Users[newUser.Id]
.AppRoleAssignments
.Request()
.AddAsync(roleAssignment);
注:此示例代码假定我们已
上一篇:B2C中的用户名发现
下一篇:B2C注册策略中要求填写姓名