Azure AD-使用SP创建应用程序注册及其凭据

时间:2018-08-02 09:32:51

标签: powershell azure azure-active-directory azure-powershell

这就是问题。我有一堆脚本,这些脚本可以在初始环境设置过程中在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 ***

这就是我现在要得到的-

  • Get-AzureRmADApplication-执行得很好
  • New-AzureRmADApplication-抛出未找到段'me'的资源
  • New-AzureRmADAppCredential-已尝试对现有应用执行命令,并且由于权限不足,无法完成操作而失败
  • New-AzureRmADServicePrincipal-已尝试对现有应用程序执行命令,抛出未找到段'me'的资源

有什么建议吗?谢谢!

1 个答案:

答案 0 :(得分:1)

您遇到的错误

  

找不到针对“我”细分的资源

是因为当您获得的权限不足时,图形API会导航到图形API上的/me端点,但是服务主体没有此端点可用。

至于

  

权限不足,无法完成操作

问题。我有一个允许创建应用程序的服务主体。您要查找的权限位于Graph API权限刀片上

App Permission

Manage Apps that this app creates or owns

此许可权允许服务主体创建应用程序并管理其创建的应用程序。这是管理员权限,因此您需要按Grant Permissions按钮才能启用此权限。

要查看用户和管理员已授予哪些权限,请导航至该应用程序的企业应用程序,然后选择“权限”刀片。此处列出了授予的权限。

希望有帮助。

相关问题