Azure 服务主体创建应用程序需要什么角色或范围

Muh*_*eed 9 azure azure-active-directory terraform pulumi azure-service-principal

我当前使用 Azure CLI 创建服务主体:

az ad sp create-for-rbac --name foo --role Contributor

我需要服务主体拥有足够的权限来创建/修改/删除各种 Azure AD 资源,包括应用程序、其他服务主体和服务主体密码。当我使用上述服务主体创建其他服务主体时,我当前收到 403 Forbidden 错误。

我还尝试过使用“所有者”和“用户访问管理员”角色,但仍然出现 403 错误。我需要向上述 Azure CLI 命令添加哪些内容,或者需要添加哪些其他角色分配?

我想在 Pulumi 程序中使用其 Azure AD 提供程序(基于 Terraform 的 Azure AD 提供程序)的服务主体。看:

https://github.com/pulumi/pulumi-azureread/issues/246

Mar*_*rco 5

为了使服务主体能够管理应用程序,它需要 API 权限。不存在范围之类的东西,因为 API 权限是针对 Azure AD API 的。范围仅在与资源管理器 API 相关时适用。这些不是同一件事。

当您转到 Azure AD 中的应用程序注册时,您可以找到该应用程序,这也是您能够分配 API 权限并授予同意的位置。您将在 Azure Active Directory Graph 或 Microsoft Graph 上执行此操作。根据我的经验,只有使用 Azure Active Directory Graph 分配的权限才有效。

Application.ReadWrite.All Application 读取和写入所有应用程序

Application.ReadWrite.OwnedBy Application 管理此应用程序创建或拥有的应用程序

您将找到可以使用的这两个应用程序权限。第一个您可以使用管理所有应用程序。

您使用的 az cli 命令用于创建角色分配。这是订阅上的 RBAC,除了服务主体是 AAD 资源之外,它与 Azure AD 无关。


小智 2

您需要添加此服务主体的范围,并将此服务主体的 Azure 角色更改为“用户访问管理员”,以便您能够修改 Azure AD 中的资源。此外,“用户访问管理员”角色将为服务主体提供该 Azure 角色分配 RBAC 权限所需的权限。请参阅以下命令了解更多详细信息:-

  az ad sp create-for-rbac --name foo --role User Access Administrator --scopes /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup1}
Run Code Online (Sandbox Code Playgroud)

另外,请确保用于创建此服务主体并向其分配角色的用户 ID 有权在 Azure AD 中注册和创建应用程序。如果没有,请分配该 ID “应用程序管理员” Azure AD 角色,或者即使您是“用户”,管理员也应该允许您创建和注册应用程序。