如何将 'User administrator' 角色分配给 Azure B2C 租户中的服务主体

How to assign 'User administrator' role to service principal in Azure B2C Tenant

我们需要将 'User Administrator' 角色分配给现有的服务主体,以允许更新 b2c 租户用户的密码。

按照中所述使用 MSOnline 模块 B2C Graph API - insufficient permissions even when Directory.ReadWrite.All is enabled 似乎已经过时并且对我们不起作用(在 powershell core / cloud powershell 中我们只会收到有关丢失文件或程序集的错误)

有什么新的方法吗?

我们尝试做的是使用正确的订阅和 b2c 租户集连接到 azure(它抱怨 b2c 租户没有订阅,但可以使用 cmdline 开关覆盖它:az login --租户 B2C-TENANT-ID --allow-no-subscriptions).

我们可以看到 b2c 租户中的服务主体,我们可以获得角色列表 (az role definition list --subscription SUBSCRIPTION-ID)。但是您可以在 Active Directory blade 的 'Roles and administrators' 面板中看到的 'User Administrator' 角色不是这些角色的一部分。打印出来的角色只是订阅本身定义的角色。

尝试分配 'User Administrator' 角色 (az role assignment create) 会产生该角色不存在的错误。

好的,所以我们找到了解决方案 - 使用 powershell 需要以下步骤:

  1. 安装模块 AzureAD
  2. Connect-AzureAD -TenantId 租户 ID
  3. Get-AzureADServicePrincipal -> 查找服务主体 ObjectId
  4. Get-AzureADDirectoryRole -> 查找 Helpdesk Administrator
  5. 添加-AzureADDireectoryRoleMember -ObjectId ROLE-ID -RefObjectId SERVICE-PRINCIPAL-OID