升级MSAL 1.4到MSAL 2.0后Bearer Token无效问题咨询
问题根因及解决方案
1. JWKS端点版本不匹配
你当前后端调用的是AAD v1版本的公开密钥端点,而MSAL 2.0(msal-browser)默认对接的是AAD v2认证端点,生成的AccessToken是由v2端点的密钥对签名的,两类端点的密钥kid、x5t参数完全独立,自然匹配失败。
你需要将后端jwks-rsa的拉取地址替换为对应版本的端点:
- 多租户应用使用v2通用端点:
https://login.microsoftonline.com/common/discovery/v2.0/keys - 单租户应用替换为对应租户的v2端点:
https://login.microsoftonline.com/{你的租户ID}/discovery/v2.0/keys
2. 额外校验逻辑排查
更换端点后如果仍然报错,需要同步检查以下配置:
- 后端JWT校验的
issuer(签发者)配置需要和MSAL 2.0返回令牌的iss一致,v2端点的签发者格式默认带/v2.0后缀,和v1版本格式不同 - 校验
aud(受众)参数是否和你申请令牌时传入的客户端ID/资源标识完全匹配 - 确保前端MSAL 2.0请求AccessToken时传入的
scope参数正确,不要使用v1版本特有的资源标识格式
内容的提问来源于stack exchange,提问作者Dan Kelly
相关产品推荐
相关产品推荐

