【问题标题】:Unable to access Graph API when using Microsoft App Developer API key使用 Microsoft App Developer API 密钥时无法访问 Graph API
【发布时间】:2018-06-05 15:51:44
【问题描述】:

当使用来自Microsoft App Registration Portal(Azure AD v2.0 端点)的开发人员 API 密钥作为“client_secret”时,我仍然无法访问 Graph API,并且在使用在我的网络浏览器中使用以下 URL 进行手动测试:

错误信息:

{
  "error": {
    "code": "InvalidAuthenticationToken",
    "message": "Bearer access token is empty.",
    "innerError": {
      "request-id": "902fec23-3ac7-433a-952c-4b0c4213869",
      "date": "2018-06-05T15:23:11"
    }
  }
}

网址:

https://graph.microsoft.com/v1.0/sites/<tenant_name>.sharepoint.com/_api/web/lists?client_id=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&client_secret=xxXXxxxxxxxxx

我正在尝试在不使用我的 O365 帐户进行身份验证的情况下对此进行测试,因为这将进入脚本以执行对 Sharepoint Online 的标注。

【问题讨论】:

    标签: microsoft-graph-api


    【解决方案1】:

    未经身份验证,您无法使用 Microsoft Graph。对 Graph 的每次调用都必须在 Authorization 标头中包含有效的访问令牌:

    来自documentation

    要调用 Microsoft Graph,您的应用必须从 Microsoft 的云身份服务 Azure Active Directory (Azure AD) 获取访问令牌。访问令牌包含有关您的应用的信息(或声明)以及它对通过 Microsoft Graph 可用的资源和 API 的权限。要获取访问令牌,您的应用必须能够通过 Azure AD 进行身份验证,并获得用户或管理员的授权才能访问所需的 Microsoft Graph 资源。

    【讨论】:

    • Marc,如果我有开发人员 API 密钥,我将如何生成访问令牌?我试过:login.microsoftonline.com/common/oauth2/v2.0/…,其中客户端密码是我的 API 密钥,但失败了。
    • 您能解释一下“开发人员 API 密钥”是什么意思吗?我从来没有听说过提到 Microsoft Graph 或 AAD 时使用的那个短语
    • 当然。如果您登录apps.dev.microsoft.com,选择“添加应用程序”,填写信息,然后在“应用程序机密”下选择“生成新密码”,它会为您提供一次性密钥,以编程方式访问 O365 环境。跨度>
    • 这不是你想的那样。那是您用来从 /token 端点获取令牌的“客户端密钥”。它是 OAuth 流程的一部分。这篇文章可能会有所帮助:massivescale.com/microsoft-v2-endpoint-primer
    • 嗨,马克,这绝对有帮助,谢谢!最后一个问题,一旦我有了访问令牌,我将如何在网络浏览器中使用它来访问我想要获取的资源?在讨论使用属性的文章中,我没有遇到属性名称。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-09
    • 1970-01-01
    • 2020-07-24
    • 1970-01-01
    • 2019-08-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多