azure-active-directory - 请求访问令牌 MS Graph 时的 Invalid_grant
问题描述
感谢您阅读本文。
我在使用 Postman 获取 MS Graph 的访问令牌时遇到问题。我一直在阅读有关 stackoverflow 的类似帖子,但到目前为止,没有成功。在下文中,我添加了一些屏幕截图,其中包含(我相信)此过程所需的所有信息。
我用来获取访问代码的链接:
https://login.microsoftonline.com/ {租户 ID}/oauth2/v2.0/authorize? client_id=3ef3343a-ab22-4c50-12ae2a2d7c67 &response_type=code &redirect_uri=https://localhost:8080 &response_mode=query &scope=offline_access%20user.read &state=12345
3)点击此链接后,我授予权限并接收代码,我在以下邮递员电话中使用该代码:https ://i.stack.imgur.com/ZJv2b.png
在没有用户的情况下获取访问令牌没有问题,但不幸的是,我需要的不仅仅是应用程序权限。我希望有一个人可以帮助我!
谢谢你的时间!
解决方案
您不能同时生成 Delegated(有用户)和 Application(没有用户)的单个令牌。您需要提出两个单独的请求。
要生成委托令牌,您首先需要检索授权码(即 authrorization_code
授权)。这是通过将用户重定向到以下地址来完成的(换行符仅供阅读)
https://login.microsoftonline.com/common/oauth2/v2.0/authorize?
client_id=[APPLICATION ID]&
response_type=code&
redirect_uri=[REDIRECT URI]&
scope=[SCOPE]
这将向您在参数中指定的地址返回一个授权码redirect_uri
(请注意,此地址也必须包含在您的应用注册中)。然后,您将此代码POST
带到/token
端点,如下所示:
https://login.microsoftonline.com/common/oauth2/v2.0/token
Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code&
code=[AUTHORIZATION CODE]&
client_id=[APPLICATION ID]&
client_secret=[PASSWORD]&
scope=[SCOPE]&
redirect_uri=[REDIRECT URI]
对于应用程序令牌,您只需跳过授权代码步骤并直接POST
到/token
端点:
https://login.microsoftonline.com/{tenantDomain}/oauth2/v2.0/token
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials&
client_id=[APPLICATION ID]&
client_secret=[PASSWORD]&
scope=https://graph.microsoft.com/.default
推荐阅读
- django - 连接django html模板的问题
- java - Spring boot Embedded MongoDB 在构建期间无法正常工作
- javascript - 一个人如何根据 React 状态重复一个“摇晃”的 CSS 类(所以不是 onClick)
- java - Spring Data Elasticsearch 文档没有被反序列化
- jquery - 如何调用与我单击的缩略图具有相同“.length”的 div?
- html - border-image 在 Firefox 上有其他行为
- python - 在比较两个文件的更改时实现忽略更改列表
- c# - 如何在 ColdFusion 中使用 C#.NET 程序集?
- python - 从一串行中提取特定列
- python - 点击网页上的按钮(python、webscraping)