【问题标题】:Microsoft Graph API /me 400 Bad RequestMicrosoft Graph API /me 400 错误请求
【发布时间】:2018-09-26 18:09:28
【问题描述】:

这是我的相关代码...

Dim wclient2 = New WebClient()
wclient2.Headers.Add("Authorization", "Bearer " & accessToken)
Dim response As String = wclient2.DownloadString("https://graph.microsoft.com/v1.0/me")

我收到“400 Bad Request”错误。

我的accessToken 有效。我的应用程序已注册并具有 User.Read.All 应用程序权限。

有人知道我做错了吗?

【问题讨论】:

  • 您能分享一下响应正文中返回的错误吗?
  • 您是否尝试将Content-Type 标头设置为application/json
  • @Filburt 是的,我先尝试过。拿出来不确定响应是否实际上是 JSON。
  • @DanSilver "远程服务器返回错误:(400) Bad Request。"
  • @Filburt 与 wclient2.Headers.Add("Content-Type", "application/json") 相同的错误消息

标签: azure-active-directory microsoft-graph-api


【解决方案1】:

应用程序权限仅在使用 OAuth 客户端凭据授权时应用。此授权验证您的应用,而不是用户。换句话说,上下文中没有“用户”。

/me URI 只是 /users/{currentlyAuthenticatedUser} 的简写别名。由于您没有经过身份验证的用户,因此 Graph 不知道 /me 指的是谁。

使用客户端凭据时,您需要显式引用所需的用户:

https://graph.microsoft.com/v1.0/users/{userPrincipalName | id}

【讨论】:

  • 看来我需要使用 OpenID Connect。所以,我叫错了树。谢谢@MarcLaFleur!
  • 您也可以使用授权码或隐式授权(OpenID Connect 基本上是授权码的超集)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-07
相关资源
最近更新 更多