如何使用基于自定义租户的身份验证(在 Spring 授权服务器中返回 JWT)处理 OAuth2 授权代码流?

问题描述 投票:0回答:1

我正在使用 Spring Authorization Server 和 JDK 21 构建 Spring Boot 3 Web 服务,通过自定义身份验证处理多租户系统。该流程涉及:

第三方客户端(例如 Team Tailor)向我的 auth2 服务发起 OAuth2 授权代码流。 auth2 根据客户端 ID 识别租户,检索租户的登录 URL,并将用户重定向到租户进行身份验证(SSO 或用户名/密码)。 身份验证成功后,租户应用程序将 JWT 返回给 auth2。 auth2 从租户的 JWT 中读取声明(例如用户名、用户配置文件 ID),并需要将此信息传递给 Spring 授权服务器以完成流程并为第三方客户端颁发新的 JWT。 问题:如何拦截 OAuth2 授权码请求,提取客户端 ID 以查找租户的登录 URL,并避免租户使用 JWT 重定向回来时出现无限循环?我不想手动生成 JWT;我只是想将租户的 JWT 声明传递到 Spring 授权服务器并让它处理最终的令牌发行。

收到租户的 JWT 后继续流程的最佳方法是什么,确保 Spring 授权服务器处理令牌生成?

我认为目前的流程对我有用 enter image description here

简而言之,我想从授权服务器得到什么 enter image description here

spring-security oauth-2.0 spring-authorization-server
1个回答
0
投票

Problem: How can I intercept the OAuth2 Authorization Code request, extract the client ID to find the tenant's login URL, and avoid an infinite loop when the tenant redirects back with the JWT? 

您是否尝试过在授权服务器安全过滤器链中注册

authorizationRequestConverter

看看这个答案

© www.soinside.com 2019 - 2024. All rights reserved.