我正在尝试将“应用程序管理员”角色应用于服务主体,以允许其在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} 权限不足,无法完成操作。
答案 0 :(得分:0)
要授予应用程序创建,编辑和删除应用程序所有方面的能力(应用程序对象和ServicePrincipal对象,分别在门户中表示为App Registrations和Enterprise Apps),则应考虑以下两个仅应用程序权限(而不是目录角色):
这些权限与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对象,他们可以为这些对象(keyCredentials
和passwordCredentials
)添加凭据,并在此过程中行使已授予其他应用程序的任何访问权限。如果授予 Application.ReadWrite.All 的应用程序遭到破坏,则 all 几乎所有应用程序都受到破坏。