如何授予服务主体对 运行 Get-AzADServicePrincipal 的权限?

How to grant a service principal permissions to run Get-AzADServicePrincipal?

我想使用 Get-AzADServicePrincipal 在我的 DevOps 管道中的 Azure PowerShell 任务中获取有关服务主体的信息,但我收到此错误。

[Authorization_RequestDenied] : Insufficient privileges to complete the operation

DevOps 服务主体在订阅中拥有 Contributor 权限。 我已经创建了一个自定义角色,但不确定要为其分配什么权限,以便我可以 运行 我的管道中的命令。我的用户帐户是 Subscription Owner.

此错误通常发生在您没有读取服务主体的权限时,可能 Directory.Read.AllApplication.Read.All 未启用。请通过授予管理员同意来提供与这些权限的服务连接。

要启用它,请完成以下步骤:

转到 Azure 门户 -> Azure Active Directory -> 应用程序注册 -> 你的 DevOps 资源 -> API 权限

  • 现在,点击Grant Admin Consent,状态会变为 授予(绿色)。

执行所有这些后,重新部署 DevOps 管道和 运行 Get-AzADServicePrincipal 以获取有关服务主体的信息。

如果仍然不起作用,请将 Directory ReadersApplication Administrator 角色分配给 DevOps 管道的服务主体。

参考文献:

  1. 使用 Azure DevOps 管理服务主体时的注意事项 Azure 资源组上的 RBAC |通过安德鲁·凯莱赫 |蔚蓝 建筑师 |中