使用JMeter认证Azure AD时遇AADSTS900144错误求助
排查JMeter对接Azure AD时的AADSTS900144错误
我按照《Authenticating to Azure AD with JMeter without plugins》配置JMeter无插件对接Azure AD,始终遇到以下错误:
{"error":"invalid_request","error_description":"AADSTS900144: The request body must contain the following parameter: 'grant_type'. Trace ID: 93481b5XXXXX6337da00 Correlation ID: b7d28456-9a58-4XXXXXXXXX6939710 Timestamp: 2024-09-13 09:50:09Z","error_codes":[900144],"timestamp":"2024-09-13 09:50:09Z","trace_id":"93481b52XXXXXXX-ca5e6337da00","correlation_id":"b7d28456-9a58-4XXXXXXXX939710","error_uri":"https://login.microsoftonline.com/error?code=900144"}
JMeter配置截图





错误原因
AADSTS900144错误直接指向核心问题:请求体中缺少OAuth2认证必填的grant_type参数。这个参数用于告知Azure AD你使用的授权类型,是所有Azure AD token请求的强制参数。
解决方法
添加
grant_type参数
根据你选择的认证流程,在请求体中添加对应值的参数:- 密码授权流(账号密码直接认证):
grant_type=password - 客户端凭证流(服务间认证):
grant_type=client_credentials - 授权码流(需前端跳转授权):
grant_type=authorization_code
- 密码授权流(账号密码直接认证):
确保参数提交方式正确
- 该参数必须通过POST请求的请求体提交(选择JMeter的「Parameters」或「Body Data」标签),不能作为URL查询参数传递
- 确认HTTP请求头中已设置
Content-Type: application/x-www-form-urlencoded,这是Azure AD token端点要求的参数提交格式
补全配置遗漏
对照原博客的步骤检查,原配置流程中必然包含grant_type参数的设置,确认是否遗漏该步骤,或参数值与你实际使用的认证流程不匹配。
内容的提问来源于stack exchange,提问作者Joy
相关产品推荐
相关产品推荐

