Azure Python SDK-与Azure AD交互
我有一个服务主体帐户,我使用它来自动计算和资源管理对象,而不会出现问题。我似乎无法与之互动的是房子的Azure广告面。我得到了一份工作 “azure.graphrbac.models.graph\u error.GraphErrorException:权限不足,无法完成操作” 我不确定要在何处为此添加正确的权限。目前正在测试以下内容,以查看是否至少可以列出用户:Azure Python SDK-与Azure AD交互,python,azure,azure-active-directory,Python,Azure,Azure Active Directory,我有一个服务主体帐户,我使用它来自动计算和资源管理对象,而不会出现问题。我似乎无法与之互动的是房子的Azure广告面。我得到了一份工作 “azure.graphrbac.models.graph\u error.GraphErrorException:权限不足,无法完成操作” 我不确定要在何处为此添加正确的权限。目前正在测试以下内容,以查看是否至少可以列出用户: graph_credentials = ServicePrincipalCredentials( client_id = CLIENT
graph_credentials = ServicePrincipalCredentials(
client_id = CLIENT,
secret = KEY,
tenant = TENANT_ID,
resource = 'https://graph.windows.net'
graphrbac_client = GraphRbacManagementClient(graph_credentials, TENANT_ID)
for item in graphrbac_client.groups.list():
print(item)
我已经查看了联机参考资料和SDK文档,看起来我做得不错。我相信这很简单。我还尝试使用UserPassCredentials(),但出现了其他错误。无论如何,我都不想为此使用用户信誉
权限集:
我想你还没有授予你的广告应用程序API权限 导航到门户中的广告应用程序->
API权限
->授予Azure Active Directory图形
以应用程序权限
(例如目录.Read.All
),添加权限后,最后单击授予同意
按钮
然后我在我这边测试,效果很好
我发现了问题所在。我在“Microsoft Graph”下选择权限,但没有给它正确的权限。我没有注意到API列表底部是Azure Active Directory图表。我在那里换了,它成功了
我现在的问题是,这被列为遗产。我应该担心吗?现在是否有更合适的方法执行此操作?请编辑您的问题并包括分配给此服务主体的权限。你很可能没有包括列出组的权限操作(顺便说一句,这需要管理员权限)。@GauravMantri,我添加了它。谢谢你指出这一点。这似乎也没用。我正在尝试自动化,如果我被冒犯了,请原谅我。我在“应用程序注册”下创建了一个“应用程序”。这就是我获取客户id、租户id和密钥的地方。如果这一切都是一样的,那么添加Graph API会导致相同的错误。租户ID只是一个长字符串,对吗?在一些文档中,我将其视为FQDN。@Nathan请在问题中添加应用程序api权限的屏幕截图。我在OP中添加了权限。别担心,您当前可以使用AAD图。微软只是建议你使用微软图形,现在有微软图形SDK,但它不支持python。您也可以手动调用MS图形,