这就是问题。我有一堆脚本,这些脚本可以在初始环境设置过程中在Azure,其ServicePrincipal中创建应用程序注册,最后将证书设置为密钥。 当我以具有Global Admin角色的用户身份登录时,一切正常。
现在,为了实现自动化,我需要执行相同的操作,但使用ServicePrincipal而不是我的用户帐户。想法是使用它来创建/删除应用程序注册并旋转其密钥。考虑它是某种主SP。因此,我创建了一个,并授予了下一个权限-
Microsoft Graph - Application Permission: "Read directory data"
Microsoft Graph - Application Permission: "Read and write directory data"
Windows Azure Active Directory - Application Permission: "Read directory data"
Windows Azure Active Directory - Application Permission: "Read and write directory data"
已为给定订阅为SP分配了所有者角色。
我的自动化脚本执行下一个命令-
Get-AzureRmADApplication
New-AzureRmADApplication
New-AzureRmADAppCredential
New-AzureRmADServicePrincipal
Powershell版本为5.1
AzureRM.Resources模块版本为6.1.0
这是我在脚本中设置帐户的方式-
$secpasswd = ConvertTo-SecureString "Master_SP_Password" -AsPlainText -Force
$creds = New-Object System.Management.Automation.PSCredential ("Master_SP_AppId", $secpasswd)
Add-AzureRMAccount -ServicePrincipal -Tenant "***" -Subscription "***" -Credential $creds
Select-AzureRMSubscription -SubscriptionId *** -TenantId ***
这就是我现在要得到的-
有什么建议吗?谢谢!
答案 0 :(得分:1)
您遇到的错误
找不到针对“我”细分的资源
是因为当您获得的权限不足时,图形API会导航到图形API上的/me
端点,但是服务主体没有此端点可用。
至于
权限不足,无法完成操作
问题。我有一个允许创建应用程序的服务主体。您要查找的权限位于Graph API权限刀片上
Manage Apps that this app creates or owns
此许可权允许服务主体创建应用程序并管理其创建的应用程序。这是管理员权限,因此您需要按Grant Permissions
按钮才能启用此权限。
要查看用户和管理员已授予哪些权限,请导航至该应用程序的企业应用程序,然后选择“权限”刀片。此处列出了授予的权限。
希望有帮助。