JMeter中Bearer Token受众无效及两类Token差异咨询
Azure Bearer Token受众无效问题及Token类型说明
1. id_token 与 access_token 的核心区别
- id_token:身份验证令牌,核心作用是确认用户身份信息(如姓名、邮箱、用户ID等)。其
aud字段固定为你的应用在Azure Portal中的Application ID,仅能由你的应用自身验证,不能用于调用第三方API。 - access_token:资源访问令牌,核心作用是授权调用指定API服务。其
aud字段是目标API的标识符(由API的Azure配置决定),只有该目标API会验证此令牌的有效性。
2. 修复「audience 'xxxxxx' is invalid」问题的步骤
你当前的问题根源是使用了不符合API要求的令牌(大概率是用了id_token而非access_token,或请求access_token时指定的受众错误),修复步骤如下:
- 确认令牌类型:调用API必须使用access_token,而非id_token。在JMeter的认证配置中,需明确请求的是access_token。
- 指定正确的受众参数:
- 若使用Azure AD v2.0端点:在认证请求的
scope参数中填入目标API的标识符,格式通常为api://{目标API的Application ID}/.default - 若使用Azure AD v1.0端点:在认证请求的
resource参数中填入目标API的Application ID或其URI格式标识符(如api://{目标API的Application ID})
- 若使用Azure AD v2.0端点:在认证请求的
- 受众格式说明:目标API的受众通常有两种合法格式:
- 目标API的Application ID(一串GUID)
- URI格式标识符(如
api://{目标API的Application ID})
具体值可在Azure Portal的目标API配置页面(「API权限」或「公开API」板块)中查看
- 调整JMeter配置:更新认证请求的
scope/resource参数为上述正确值,重新获取access_token后,解码检查aud字段是否与目标API的受众一致,再用此令牌调用API即可。
内容的提问来源于stack exchange,提问作者JamesM
相关产品推荐
相关产品推荐

