Postman获取Azure AD Access Token失败,提示AADSTS900144错误:请求体缺少client_id参数
Postman获取Azure AD Access Token失败,提示AADSTS900144错误:请求体缺少client_id参数
遇到这种之前正常运行、突然掉链子的问题确实挺闹心的,我帮你梳理几个大概率能解决问题的方向:
1. 优先检查Postman的OAuth2配置是否完整
报错明确指出请求体里缺少client_id,而正常情况下Postman会自动把你配置的Client ID带入请求体,所以先重点确认:
- 在Postman的Authorization标签下,选择OAuth 2.0后,
Client ID输入框有没有填对Azure AD应用的「应用程序(客户端)ID」?会不会不小心清空或者输错了? - 确认
Grant Type选择的是Authorization Code(你用了authorize和token两个端点,完全匹配授权码流程的要求) - 检查是否勾选了Send client credentials in body选项:如果你的应用是公共客户端(比如桌面/移动应用),Azure AD要求
client_id必须放在请求体里;即便是机密客户端,勾选这个选项也能确保参数正确带入请求体,避免因Header传递导致的识别异常。
2. 排查环境变量与URL配置问题
你提到尝试过带{{tenant_id}}的token URL,先确认:
- 你的Postman环境变量中
tenant_id是否正确设置?虽然报错是缺client_id,但URL参数解析失败也可能导致整个请求流程异常 - 建议优先用明确的租户ID替换占位符,比如直接用
https://login.microsoftonline.com/your-tenant-id/v2.0/token测试,排除环境变量解析失败的可能
3. 手动构造请求验证端点可用性
如果Postman的自动OAuth流程还是有问题,可以直接构造Raw POST请求测试token端点,快速定位问题:
- 请求URL:
https://login.microsoftonline.com/your-tenant-id/v2.0/token - 请求体(选择x-www-form-urlencoded格式):
client_id=你的客户端ID grant_type=authorization_code code=你从authorize端点获取的授权码 redirect_uri=你在Azure AD里配置的重定向URI client_secret=你的客户端密钥(如果是机密客户端的话)
如果手动请求能成功拿到token,说明问题出在Postman的自动OAuth配置上,建议尝试:
- 新建一个空白请求重新配置OAuth2参数
- 清除Postman的缓存:点击左上角「Settings」→「General」→「Clear Cache」,或者在Authorization标签里点击「Clear Tokens」后重新获取
4. 快速排除Azure AD侧的配置变更
虽然你说其他应用也不行,但还是花1分钟确认下:
- Azure AD里的目标应用是否处于启用状态?
- 重定向URI有没有被误修改?(不过这个报错和重定向URI无关,只是做个兜底排查)
备注:内容来源于stack exchange,提问作者Mehdi Sheikh
相关产品推荐
相关产品推荐

