如何使用 Azure Active Directory B2C GraphServiceClient 创建全局管理员用户?

How to create Global Administrator user using Azure Active Directory B2C GraphServiceClient?

我想使用 GraphServiceClient(Microsoft Graph API,而不是 Azure AD Graph API)在 Azure Active Directory B2C 中创建一个新用户。我通过设置 UserType = "Global Administrator" 尝试了以下操作,但这不起作用并且 newAdminUser 显示为常规 User 而不是 Global Administrator。我做错了什么?

User newAdminUser = await graphClient.Users.Request().AddAsync(new User
{
    AccountEnabled = true,
    DisplayName = userBinding.FullName,
    MailNickname = userBinding.UserName,
    UserPrincipalName = userBinding.UserName + '@' + domain,
    PasswordProfile = new PasswordProfile
    {
        Password = new NetworkCredential(string.Empty, userBinding.Password).Password,
        ForceChangePasswordNextSignIn = true
    }
});

await graphClient.Users[newAdminUser.Id].Request().UpdateAsync(new User()
{
    UserType = "Global Administrator"
});

这里是 newAdminUser 的 Azure Active Directory B2C 配置文件的屏幕截图,显示授予的权限不是 Global Administrator

所有用户,无论是否为管理员,都是目录中的一个 user 对象。给定 user 的访问权限也取决于它们所属的目录角色。

为了将某人分配给 "Global administrator" 角色,您需要将 user 添加到正确的角色。

  1. 通过检索 list of directoryRoles:
  2. 找到您想要的角色的 id
var directoryRoles = await graphClient.DirectoryRoles
    .Request()
    .GetAsync();
  1. Add the user 角色:
await graphClient.DirectoryRoles["role-id"]
    .Members
    .References
    .Request()
    .AddAsync(newAdminUser);