首页 > 解决方案 > Azure AD - 使用 SP 创建应用注册及其凭据

问题描述

所以这就是事情。我有一堆脚本,它们在初始环境设置期间在 Azure 中创建应用注册,它的 ServicePrincipal,最后将证书设置为密钥。当我以具有 Global Admin role 的用户身份登录时,一切正常

现在,为了自动化,我需要做同样的事情,但使用 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 ***

这就是我现在得到的 -

有什么建议么?谢谢!

标签: powershellazureazure-active-directoryazure-powershell

解决方案


你得到的错误

未找到片段“我”的资源

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

至于

权限不足,无法完成操作

问题。我有一个有权创建应用程序的服务主体。您正在寻找的权限在 Graph API Permission 刀片上是

应用权限

Manage Apps that this app creates or owns

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

要查看用户和管理员授予了哪些权限,请导航到应用程序的企业应用程序并选择权限边栏选项卡。此处列出了授予的权限。

希望有帮助。


推荐阅读