Azure AD+Spring Boot生成的Access Token签名无效及算法查询求助
问题解答
1. Access Token签名是否无效?
不是。这种情况本质是验证逻辑与Azure AD实际使用的签名算法不匹配,而非Token本身签名无效。
Azure AD默认使用RS256(非对称加密算法,用Azure AD的公钥验签)生成Access Token。你在jwt.io切换到HS256后验证通过,说明你可能误将对称密钥(比如应用的客户端密钥)当作验签密钥——HS256是对称加密机制,用同一密钥完成签名和验签,这种错误的验证逻辑才会出现“切换算法后验证通过”的假象,并非Token签名本身存在问题。
2. 查询Azure AD生成Access Token使用的算法
有三种直接可行的方式:
- 解码Token的Header段:JWT的Header部分包含
alg字段,直接解码Token即可看到实际使用的签名算法(可通过jwt.io可视化查看,或本地用Base64解码Header内容)。 - 查看Azure AD的OpenID配置端点:访问对应租户的OpenID配置地址(格式为
https://login.microsoftonline.com/{你的租户ID}/v2.0/.well-known/openid-configuration),返回的JSON数据中,id_token_signing_alg_values_supported和token_endpoint_auth_signing_alg_values_supported字段会列出Azure AD支持的签名算法,默认值为RS256。 - Azure门户直接查看:进入Azure AD的「应用注册」模块,找到你的目标应用,在「令牌配置」页面可查看默认签名算法;也可在「概述」页面的「终结点」区域找到OpenID配置端点,进一步查看详细的算法支持列表。
内容的提问来源于stack exchange,提问作者dsreddy
相关产品推荐
相关产品推荐

