应用程序管理员AD角色未提供正确的权限

时间:2019-07-24 13:49:34

标签: bash azure powershell azure-active-directory

我正在尝试将“应用程序管理员”角色应用于服务主体,以允许其在AD中创建其他服务主体。我本来以为能够管理应用程序注册等各个方面,如此处的文档所述:https://github.com/MicrosoftDocs/azure-docs/blob/master/articles/active-directory/users-groups-roles/directory-assign-admin-roles.md可以允许我执行此操作,但是我仍然不能以这种方式创建新的服务主体?

在“ AD应用程序注册”中查找时似乎已创建,但由于权限不足而出错

我已经尝试了几种通过bash和powershell的方法,尝试首先创建AD应用程序,然后根据该应用程序ID创建服务主体,还尝试使用“ Global Admin”角色,该方法可以正常工作,但是我们正在尝试尽可能地限制。

我试图在bash中运行的命令是

az ad sp create-for-rbac -n $spn_name --skip-assignment

与powershell中的等效项

New-AzAdServicePrincipal -ApplicationId $appid

从仅分配了“应用程序管理员”角色的SPN中。

为appid'http://test-spn1'创建服务主体失败。跟踪如下: {追踪JSON} 权限不足,无法完成操作。

1 个答案:

答案 0 :(得分:0)

要授予应用程序创建,编辑和删除应用程序所有方面的能力(应用程序对象和ServicePrincipal对象,分别在门户中表示为App Registrations和Enterprise Apps),则应考虑以下两个仅应用程序权限(而不是目录角色):

  • Application.ReadWrite.All -创建Application和ServicePrincipal对象,并管理所有Application和ServicePrincipal对象。
  • Application.ReadWrite.OwnedBy -创建Application和ServicePrincipal对象(并自动将其设置为所有者),并管理其拥有的Application和ServicePrincipal对象(要么是因为创建它们,要么是因为它被分配为所有者。

这些权限与Application Administrator目录角色允许用户的权限非常接近。它们可用于Azure AD Graph API(Azure CLI,Azure AD PowerShell模块(AzureAD)和Azure PowerShell模块(Az)使用的API)和Microsoft Graph API(您应用于生产方案,因为application和servicePrincipal权限仍处于beta中)。权限记录在这里:  * https://docs.microsoft.com/graph/permissions-reference#application-resource-permissions

警告:这两个权限都是非常高的特权。通过能够管理Application和ServicePrincipal对象,他们可以为这些对象(keyCredentialspasswordCredentials)添加凭据,并在此过程中行使已授予其他应用程序的任何访问权限。如果授予 Application.ReadWrite.All 的应用程序遭到破坏,则 all 几乎所有应用程序都受到破坏。