Azure AD token 颁发端点不返回 "scope"参数

标签 azure office365 office365api microsoft-graph-api 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>"
}

除了缺少“范围”参数之外。我在 AD 配置面板中检查了所有“Office 365 Exchange Online”“应用程序权限”。当针对 Graph API 使用返回的 token 时,我能够成功调用 https://graph.microsoft.com/v1.0/users/,但无法调用其他端点。

最佳答案

我刚刚遇到这个问题,想详细说明标记为正确的答案,因为它是正确的答案,但不是完整的解决方案。如果没有范围参数,则意味着您的应用程序已注册,但管理员尚未同意该应用程序访问您的 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 门户 - 如果单击右上角的“帮助”图标,然后选择“显示诊断”,您可以在诊断 JSON 中找到租户 ID。

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

This article对于尝试进行图形集成的人来说,有大量有用的信息。

关于Azure AD token 颁发端点不返回 "scope"参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40028932/

相关文章:

microsoft-graph-api - 使用 Microsoft Graph 从 session ID 获取第一封电子邮件

javascript - 如何使用 Office.js API 在 Excel 中实现数据验证

api - Azure Advisor API 可能的限制和筛选问题

azure - 使用 REST API 查询 Blob 内容中的 InvalidQueryParameterValue

windows-7 - 浏览文件时 Office 365 日期修改格式不正确

powershell - 判断connect-msolservice是否已经被成功调用

javascript - Office 365 API 搜索在 Word Online 上替换(故障?)

azure - Pester 测试不会因数组缺失值而失败

azure - 如何在 Azure WebApps 上部署多个应用程序

node.js - 我想在 Microsoft Teams 中垂直显示按钮