azure - 为什么获取用户访问令牌会引发 invalid_grant 错误?
问题描述
我正在使用Microsoft Graph Postman 集合来测试 Postman 中的常见 Microsoft Graph API。但是,我在尝试获取用户访问令牌时被卡住了
下面是请求
POST /7c69806f-5754-488f-9dd8-7daa8afea4fd/oauth2/v2.0/token HTTP/1.1
Host: login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded
SdkVersion: postman-graph/v1.0
cache-control: no-cache
Postman-Token: ac512133-5afe-47a3-ae9b-3b6c0b510ebd
grant_type=passwordclient_id=ebbe4872-5b7187-de6d6ddf7301client_secret=g99p8DWoxdUPY-%3F%40%5Bv7kt2g4BMxGscope=https%3A%2F%2Fgraph.microsoft.com%2F.defaultuserName=rohitdhamijagmail.onmicrosoft.compassword=Zcost%4080
在尝试“获取用户访问令牌”POST API 时,我收到以下错误:
{
"error": "invalid_grant",
"error_description": "AADSTS50034: The user account rohitdhamijagmail.onmicrosoft.com does not exist in the 7c69806f-5754-488f-9dd8-7daa8afea4fd directory. To sign into this application, the account must be added to the directory.\r\nTrace ID: c0e97dd8-053d-4c99-81e4-354d7ae7d500\r\nCorrelation ID: 7e67450e-3054-48bc-b808-2f6277093dac\r\nTimestamp: 2020-03-03 09:38:09Z",
"error_codes": [
50034
],
"timestamp": "2020-03-03 09:38:09Z",
"trace_id": "c0e97dd8-053d-4c99-81e4-354d7ae7d500",
"correlation_id": "7e67450e-3054-48bc-b808-2f6277093dac",
"error_uri": "https://login.microsoftonline.com/error?code=50034"
}
用户帐户确实显示在我的 Azure 租户下,下面是附加的图像
可能是什么问题? 注意:我已经正确配置了全局环境,因为我可以使用其他 API,例如获取用户信息等。
解决方案
您的请求应该是这样的。
https://login.microsoftonline.com/YourTenant.onmicrosoft.com/oauth2/v2.0/token
client_id:b603c7be_Client_id_e61f925
scope:https://graph.microsoft.com/.default
client_secret:NpmwO/KDJ_client_secret:NpmwO_W0kWf1SbnL
username:tenentUser.onmicrosoft.com
password:YourUserPassword
grant_type:password
看屏幕截图:
我按预期获得令牌
Step: 1
Step: 2
Step: 3
Note:
- 确保您的用户属于租户上的 azure 门户
- 您的客户 ID 属于该租户
- 应用程序密钥有效或未过期。
Update: How to get Tenant Id
更多信息可以参考官方文档
希望这会有所帮助。
推荐阅读
- ms-access - 使用用户名登录时在主窗体上显示用户名
- python - Turtle中程序变化的速度
- javascript - 用户交互后范围滑块的位置未更新
- docker - 挂在“Docker 桌面正在启动”上
- c# - 如何使用 xamarin 在可空对象上设置值?
- oracle11g - Oracle:列默认值作为同一表中的另一列
- javascript - discord bot 使用 discord.js 设置游戏状态
- mysql - 当我使用 group by 子句时,列消失
- python - 使用 configparser 为多个环境配置
- rust - 在迭代中使用 Rust 中的泛型 From-Trait