powershell - 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 ***
这就是我现在得到的 -
- Get-AzureRmADApplication - 执行得很好
- New-AzureRmADApplication -为段“我”抛出资源未找到
- New-AzureRmADAppCredential - 已针对现有应用尝试了该命令,但由于权限不足而无法完成操作
- New-AzureRmADServicePrincipal - 已尝试针对现有应用程序的命令,抛出“找不到”段“我”的资源
有什么建议么?谢谢!
解决方案
你得到的错误
未找到片段“我”的资源
是因为当您获得的权限请求不足时,图形 API 会导航到图形 API 上的/me
端点,但是服务主体没有此端点可供他们使用。
至于
权限不足,无法完成操作
问题。我有一个有权创建应用程序的服务主体。您正在寻找的权限在 Graph API Permission 刀片上是
Manage Apps that this app creates or owns
此权限允许服务主体创建应用程序并管理它创建的应用程序。这是管理员权限,因此您需要按下Grant Permissions
按钮来启用它。
要查看用户和管理员授予了哪些权限,请导航到应用程序的企业应用程序并选择权限边栏选项卡。此处列出了授予的权限。
希望有帮助。
推荐阅读
- docker - 如何在 docker stack 中按名称引用容器?
- python - 当我们有多个特征时,如何绘制散点图以了解数据的总体趋势
- python - 如何在 Python 中生成一串数字?
- azure-active-directory - InteractionRequiredAuthError: AADSTS65001: 用户或管理员未同意使用带有 ID 的应用程序
- java - 动态添加类型到 Annotation 处理环境
- javascript - fetch api - 400 加载资源失败
- c++ - 在 C++ 中对 bool 数组进行向量化
- javascript - 这次我放弃时如何防止以前的放弃事件
- java - 使用具有功能接口的构造函数通过反射实例化类
- flutter - 提交 TextField 后关闭 AlertDialog | 颤振/飞镖