使用client_credentials Azure AD Graph API进行授权时出现问题

时间:2014-04-09 14:12:27

标签: azure active-directory oauth-2.0

我正在尝试将OAuth client_credentials Windows Microsoft Azure一起使用。我可以成功生成access_token但是当我尝试访问https://graph.windows.net/mydomain.com/users?api-version=2013-04-05时,我会得到403 Forbidden

我做错了什么?我认为我的请求不是一个充分授权access_token,但我无法找到/猜测其他resource或params来添加。

我目前的流量

请求

> POST /mydomain.com/oauth2/token HTTP/1.1
> Host: login.windows.net
> Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials
&client_id={client_id}
&client_secret={client_secret}
&resource=https://graph.windows.net

响应

< HTTP/1.1 200 OK
< Content-Type: application/json; charset=utf-8
{
  "access_token": "<string>",
  "token_type": "Bearer",
  "expires_in": "<seconds>",
  "expires_on": "<timestamp>",
  "resource": "https://graph.windows.net"
}

请求

> GET /mydomain.com/users
>   ?api-version=2013-04-05 HTTP/1.1
> Host: graph.windows.net
> Authorization: Bearer {access_token}

响应

< HTTP/1.1 403 Forbidden
{
  "odata.error": {
    "code": "Authorization_RequestDenied",
    "message": {
        "lang": "en",
        "value": "Insufficient privileges to complete the operation."
    }
  }
}

注意:如果我遗漏或混淆{access_token},我会获得403 Unauthorized。

1 个答案:

答案 0 :(得分:2)

根据我的评论,您需要确保已从门户网站的“其他应用程序权限”下拉列表中选择了适当的权限,否则将无法访问权限。有关详细信息,请参阅this page in the documentation