Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure Python SDK-与Azure AD交互_Python_Azure_Azure Active Directory - Fatal编程技术网

Azure Python SDK-与Azure AD交互

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

我有一个服务主体帐户,我使用它来自动计算和资源管理对象,而不会出现问题。我似乎无法与之互动的是房子的Azure广告面。我得到了一份工作

“azure.graphrbac.models.graph\u error.GraphErrorException:权限不足,无法完成操作”

我不确定要在何处为此添加正确的权限。目前正在测试以下内容,以查看是否至少可以列出用户:

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图形,