Thymeleaf + Gateway + Keycloak:最佳配置
Thymeleaf + Gateway + Keycloak: best configuration
我的项目是:
- 后端:Spring 云网关后面的 2 个微服务,
- 前端:Spring 带有 Thymeleaf 的启动应用程序。
我想使用 Keycloak 保护前端和后端访问:
- 用户登录前端
- keycloak returns 令牌
- 前端保存令牌
- 前端使用承载授权中的令牌向网关发送请求header
- 网关使用keycloak检查令牌
- 如果正常,请求被发送到微服务。
我尝试了多种配置来保护前端(Spring 安全性、keycloak 适配器)和后端(oauth2-client、Spring 安全性、authorization_code、密码) keycloak 客户端配置(public,机密,bearer-only)和 none 完全成功。
要么前端和微服务是安全的而不是网关,要么是网关和微服务是安全的而不是前端。
我找到了很多教程,但没有一个是我想要的架构。
您将如何配置前端、网关和密钥斗篷?
最后,我找到了适合我的情况的配置:
- 微服务为 oauth-resource-server、
- 网关也是oauth-resource-server,
- 带有 public access-type,
的 Keycloak 客户端
- 前端应用程序:两个选项:
- Spring 单独的安全性和用于登录和注销的 Keycloak 端点,
- 或者 Spring 使用 Keycloak 适配器的安全性。
前端只需要用户名和密码。 Keycloak returns 一个令牌。网关需要一个有效的令牌。令牌传递给微服务。
这是众多解决方案中的一种……
我的项目是:
- 后端:Spring 云网关后面的 2 个微服务,
- 前端:Spring 带有 Thymeleaf 的启动应用程序。
我想使用 Keycloak 保护前端和后端访问:
- 用户登录前端
- keycloak returns 令牌
- 前端保存令牌
- 前端使用承载授权中的令牌向网关发送请求header
- 网关使用keycloak检查令牌
- 如果正常,请求被发送到微服务。
我尝试了多种配置来保护前端(Spring 安全性、keycloak 适配器)和后端(oauth2-client、Spring 安全性、authorization_code、密码) keycloak 客户端配置(public,机密,bearer-only)和 none 完全成功。
要么前端和微服务是安全的而不是网关,要么是网关和微服务是安全的而不是前端。
我找到了很多教程,但没有一个是我想要的架构。
您将如何配置前端、网关和密钥斗篷?
最后,我找到了适合我的情况的配置:
- 微服务为 oauth-resource-server、
- 网关也是oauth-resource-server,
- 带有 public access-type, 的 Keycloak 客户端
- 前端应用程序:两个选项:
- Spring 单独的安全性和用于登录和注销的 Keycloak 端点,
- 或者 Spring 使用 Keycloak 适配器的安全性。
前端只需要用户名和密码。 Keycloak returns 一个令牌。网关需要一个有效的令牌。令牌传递给微服务。
这是众多解决方案中的一种……