Azure AD认证报错AADSTS900144:请求体缺失grant_type参数求助
解决Azure AD认证AADSTS900144错误:grant_type参数缺失问题
核心问题原因
你的请求头指定了Content-Type: application/x-www-form-urlencoded,但请求体用了JSON格式,Azure AD的token端点无法识别这种格式的参数,因此会提示grant_type缺失。
正确的请求体格式
需要将参数转换为表单编码格式,而非JSON,示例如下:
grant_type=client_credentials&client_id={你的client_id}&client_secret={你的client_secret}&scope=https%3A%2F%2Fgraph.microsoft.com%2F.default
注意:
- 参数之间用
&分隔 - 特殊字符需URL编码(如
:转%3A、/转%2F,多数HTTP客户端会自动处理编码,手动构造请求时需注意)
排查思路
- 匹配请求头与体格式:
application/x-www-form-urlencoded必须对应键值对形式的请求体,若想用JSON需修改请求头为Content-Type: application/json(但Azure AD token端点仅支持表单编码格式,优先推荐前者) - 校验参数拼写:确认
grant_type无拼写错误(必须全小写) - 检查请求体实际发送内容:用抓包工具(如Fiddler、Charles)查看真实发送的请求体,确认参数确实被正确包含且格式无误
- 替换占位符:确保
{client_id}和{client_secret}已替换为实际有效值,未保留占位符
内容的提问来源于stack exchange,提问作者Rik
相关产品推荐
相关产品推荐

