You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot OAuth2客户端集成Azure AD支持外部用户时的JWT验证异常排查求助

Spring Boot OAuth2客户端集成Azure AD支持外部用户时的JWT验证异常排查求助

各位大佬好,我遇到了一个Azure AD集成的问题,想请教下大家:

我已经配置了Azure AD的参数(包含tenantID),公司内部AD用户登录我的Spring Boot应用一切正常,但现在想支持外部用户登录——已经把应用Manifest里的signInAudience设置成了"AzureADandPersonalMicrosoftAccount"。

根据官方文档的提示,我应该把token和authorize地址里的tenant-id替换成common,于是我配置了Spring Boot OAuth2客户端如下:

spring:
  security:
    oauth2:
      client:
        provider:
          azure:
            issuer-uri: "https://login.microsoftonline.com/XXXXXXXXXXX/v2.0"
            token-uri: "https://login.microsoftonline.com/common/oauth2/v2.0/token"
            authorization-uri: "https://login.microsoftonline.com/common/oauth2/v2.0/authorize"
            user-info-uri: "https://graph.microsoft.com/oidc/userinfo"
            jwk-set-uri: "https://login.microsoftonline.com/XXXXXXXXXXX/discovery/v2.0/keys"

但现在遇到了两种异常情况:

  • 用上面的配置时,会抛出异常:Signed JWT rejected: Another algorithm expected, or no matching key(s) found。查了下发现JWT头里的kid不在https://login.microsoftonline.com/XXXX/discovery/v2.0/keys返回的密钥列表里;
  • 当我把jwk-set-uri改成https://login.microsoftonline.com/common/discovery/v2.0/keys后,虽然能找到对应的kid,但又出现新的异常:[invalid_id_token] The ID Token contains invalid claims: {iss=https://login.microsoftonline.com/XXXXX/v2.0}。

想问下大家,正确集成Azure AD并支持外部用户的方式应该是什么样的?

备注:内容来源于stack exchange,提问作者mruellan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 07:02:59