【问题标题】:Microsoft OAuth 2.0 Authorize endpoint complains about missing secretMicrosoft OAuth 2.0 授权端点抱怨缺少密钥
【发布时间】:2021-08-03 16:27:56
【问题描述】:

我正在尝试使用 Microsoft Graph API 创建一个带有 Web 应用程序的 online meeting

当我尝试发起授权请求以从最终用户获取权限以创建具有类似 URL 的令牌时:

https://login.live.com/oauth20_authorize.srf?state=xxx&scope=https%3A%2F%2Fgraph.microsoft.com%2F.default&response_type=code&approval_prompt=auto&client_id=xxx

我从 Microsoft API 收到以下错误消息:

客户端未配置密钥。如果你是客户 应用开发者,通过应用配置秘密 管理网站https://go.microsoft.com/fwlink/?linkid=2083908

我在“客户端机密”下的“证书和机密”部分为应用程序配置了一个机密:

我不知道我在这里遗漏了什么,Microsoft 文档也没有什么帮助。

【问题讨论】:

  • 你是用微软个人账号登录的吗? login.live.com 让我这么想。根据您提供的在线会议文档,不支持委派到个人帐户,仅支持工作或学校帐户,登录 url 如下所示:login.microsoftonline.com/{tenant}
  • 我打算使用应用程序权限类型。根据文档,这应该支持OnlineMeetings.ReadWrite.All* 权限。
  • 我相信你是对的。它将被委派权限。
  • 将身份验证网址更改为 login.microsoftonline.com/{tenant} - 这解决了您的问题吗?

标签: azure oauth-2.0 azure-active-directory


【解决方案1】:

解决方案是将authorizetoken 端点分别更改为https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorizehttps://login.microsoftonline.com/{tenant}/oauth2/v2.0/token,如here 所述。

就我而言 - 因为我想支持多个租户 - 我无法使用实际租户 ID 填写 URL 的 {tenant} 部分,但我需要设置 organizations,因为它被描述为 here仅支持工作或学校帐户。

所以最终的 URL 更改为:

  • 授权:https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize
  • 令牌:https://login.microsoftonline.com/organizations/oauth2/v2.0/token

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-04
    • 1970-01-01
    • 2015-09-17
    • 1970-01-01
    • 1970-01-01
    • 2015-10-31
    • 2018-06-25
    相关资源
    最近更新 更多