咨询Azure AD中Java(Spring)验证Bearer Token的有效URL
Azure AD Bearer Token 验证URL问题解决方案
正确的Token验证端点
你之前使用的/authorize是授权码流程的端点,和Token验证无关,所以无论Token是否有效都返回200是正常行为。Azure AD v2.0 提供专门的Token自省(Introspection)端点用于验证Token有效性:
https://login.microsoftonline.com/<<tenant_id>>/oauth2/v2.0/introspect
Postman测试步骤
- 请求方法:POST
- Content-Type:
application/x-www-form-urlencoded - 必填参数:
token:待验证的Bearer Token(去掉Bearer前缀,只传纯Token字符串)client_id:你的Azure AD应用注册的客户端IDclient_secret:你的应用注册的客户端密钥(后端应用通常为机密客户端,此参数必填)
- 可选参数:
token_type_hint:填写access_token或id_token,帮助端点快速识别Token类型
响应规则
- Token有效时:返回200 OK,响应JSON中
active字段为true,同时返回Token的元数据(如过期时间、受众等) - Token无效时:返回200 OK,但响应JSON中
active字段为false;若存在权限问题或参数错误,会返回4xx错误(如401、400)
Spring实现建议
在Spring中无需手动调用自省端点,直接通过Spring Security配置JWKS验证即可:
- 配置
JwtDecoder指向你能正常访问的JWKS端点:https://login.microsoftonline.com/<<tenant_id>>/discovery/v2.0/keys - 添加验证规则,比如校验Token的
issuer(应为https://login.microsoftonline.com/<<tenant_id>>/v2.0)、audience(你的应用客户端ID)等 - 配置完成后,Spring会自动处理Bearer Token的签名验证、过期检查、权限校验等逻辑
内容的提问来源于stack exchange,提问作者Bogdan C
相关产品推荐
相关产品推荐

