如何使用图谱API

时间:2017-03-23 16:53:54

标签: azure active-directory azure-active-directory

我对Azure Active Directory和Graph API相对较新。我的目标是能够编写一个python程序,该程序调用Graph API在Azure Active Directory中创建用户。我们假设我拥有Azure Active Directory的全局管理员凭据。

我正在关注此link提供的文档。我成功地使用图形资源管理器创建用户,因为我使用全局管理员的凭据登录。但是,我无法通过我的python程序(甚至是Postman REST客户端)做同样的事情。我收到一条错误消息,指出"没有足够的权限来完成操作。" 我正在使用以下python库来使用客户端凭据获取访问令牌:ADAL python library

在获取访问令牌以进行呼叫时,我似乎没有遵循正确的程序。我甚至尝试使用REST客户端直接获取访问令牌。如果有人可以审查以下步骤以突出显示任何错误,那就太棒了:

第1步:点击以下终点

  

[HTTPS] /login.microsoftonline.com/ [我的组织] /的oauth2 /授权的client_id = [客户端ID]安培; RESPONSE_TYPE =代码&安培; response_mode =查询&安培;资源= 00000002-0000-0000-C000- 000000000000

第2步:记下代码'来自上述请求的查询参数。然后提出以下请求。

  

POST [HTTPS] /login.windows.net/ [my-orgranization] /oauth2/token?api-version=1.0

     
    

标题:

         
      

内容类型应用程序/ x-www-form-urlencoded

    
         

BODY:

         
      

code = [从步骤1收到的代码]
      client_id = [我的应用程序在Azure中的客户端ID]
      client_secret = [我的应用程序在Azure中的客户端秘密]
      grant_type = authorization_code
      范围=的OpenID

    
         

请注意,上面的值是经过适当的URL编码。

  

我甚至尝试在步骤2中发送全局管理员凭据(用户名/密码)作为最后的努力,但无济于事。

非常感谢这方面的任何指示。 提前谢谢。

1 个答案:

答案 0 :(得分:1)

您收到的错误是您的应用程序配置的结果。具体而言,您需要将应用配置为具有在调用AAD Graph API时创建用户的适当权限。

在AAD Graph API提供的权限范围内查看here

要创建用户,您需要Directory.ReadWrite.AllDirectory.AccessAsUser.All。您可以通过查看访问令牌并确认这些声明出现在您的访问令牌中来检查您是否已正确完成此操作。

如果您没有这些声明,请返回您的应用注册,并确保为AAD Graph API添加适当的权限。

请注意,当您更新应用程序的权限时,您需要再次强制同意提示同意您请求的新权限,否则身份验证将继续使用您请求的OLD权限。要强制同意,只需将&prompt=consent添加到授权网址的末尾即可。

请告诉我这是否有帮助!