azure - 如何确定运行特定 Azure PowerShell 命令所需的 API 权限?
问题描述
我有一个用于自动化的服务主体。它Directory.Read.All
在 Microsoft Graph 中对我们的 Azure Active Directory 具有权限。
它无法运行该Set-AzSqlServerActiveDirectoryAdministrator
命令。我得到的错误是:
Cannot find the Azure Active Directory object 'My-AD-Group'.
Please make sure that the user or group you are authorizing is
registered in the current subscription's Azure Active directory.
如果我运行与自己相同的命令,它运行得很好。
显然,我的服务负责人需要的不仅仅是Directory.Read.All
权限。然而,我找不到任何文档准确列出我的服务主体成功运行此命令所需的 API 权限。
有谁知道我如何确切地发现运行涉及访问 Azure Active Directory 的特定 Azure PowerShell 命令需要哪些 API 权限?
顺便说一句,我不依赖于 PowerShell。我也无法让这个命令与az
cli 一起使用。我对使用az
可以得到这个答案的方法持开放态度。
解决方案
您需要授予Azure AD Graph API而不是Microsoft Graph APIDirectory.Read.All
的(应用程序权限)。还要确保服务主体具有 sql server 的权限(例如,服务主体是订阅或 sql server 的),然后它就可以正常工作。Owner
如果要将服务主体添加为订阅或 sql server 的角色,请导航到门户中的订阅或 sql server -> Access control (IAM)
-> Add
-> Add role assignment
-> 使用名称搜索您的服务主体并将其添加为角色(例如Owner
)-> Save
,更多细节在这里。
Set-AzSqlServerActiveDirectoryAdministrator -ResourceGroupName "<ResourceGroupName>" -ServerName "<ServerName>" -DisplayName "group1" -ObjectId "64d1b8xxxxx4ffbd"
有谁知道我如何确切地发现运行涉及访问 Azure Active Directory 的特定 Azure PowerShell 命令需要哪些 API 权限?
Azure PowerShell 本质上调用不同的 API,要获取 API 的权限,您可以通过Fiddler捕获请求,然后查看官方 API 文档以获取权限。
推荐阅读
- android - 使用 viewtype , onBindViewHolder 和 onCreateViewHolder 是不同的
- javascript - 如何将firebase返回的数据保存到变量
- swift - 如何显示稍微超出 UITextView 的字符的其余部分?
- reactjs - 是否可以将 Puppeteer 与 React Native 一起使用?
- c++ - 将静态字符数组中的字符分配给动态分配的字符数组 - 访问冲突
- sql-server - 在一条记录中获取同一表 SQL Server 2008 的多行
- c++ - 链接不足的一个例子
- javascript - 如何解决“动画:不支持`useNativeDriver`,因为缺少本机动画模块。” 在反应导航中?
- python - 在表格中按顺序拖动行 python selenium
- python - Python / 电子邮件处理:如何获取附件的创建日期?