Azure AD令牌发布端点不会返回"范围"参数

时间:2016-10-13 19:01:20

标签: azure office365 office365api microsoft-graph azure-ad-graph-api

我正在使用本文所述的服务应用查询Microsoft Graph:http://graph.microsoft.io/en-us/docs/authorization/app_only

我成功地向租户特定的URL发出POST请求并获得指定的JSON响应:

{ 
  "token_type": "Bearer",
  "expires_in": "3599",
  "scope": "User.Read",
  "expires_on": "1449685363",
  "not_before": "1449681463",
  "resource": "https://graph.microsoft.com",
  "access_token": "<token>"
}

除了&#34;范围&#34;参数丢失。我有所有&#34; Office 365 Exchange Online&#34; &#34;申请许可&#34;在我的AD配置面板中检查。在针对Graph API使用返回的令牌时,我能够成功调用https://graph.microsoft.com/v1.0/users/,但没有其他端点。

2 个答案:

答案 0 :(得分:2)

我刚刚遇到了这个问题,并希望详细说明标记为正确的答案,因为这是正确的答案,但却是一个不完整的解决方案。如果没有范围参数,则表示您的应用已注册,但管理员未同意访问您的AD实例的应用。注册应用程序后,您必须构建并转到以下URL以授权应用程序(当然还有管理员帐户):

GET https://login.microsoftonline.com/{TenantID}/adminconsent?
client_id=<APP ID>
&state=<This is optional for your app to use>
&redirect_uri=<ReturnURL>

TenantID:来自Azure门户网站 - 如果您点击右上方的“帮助”图标,然后选择“显示诊断”&#39;您可以在诊断JSON中找到租户ID。

AppID:来自Azure门户 - 当您注册应用时,您将转到管理控制台并剪切/粘贴

This article对于尝试进行图表整合的人来说有一些有用的信息。

答案 1 :(得分:1)

您需要从Microsoft Graph服务中可用的列表中选择应用程序范围,然后获得管理员同意