基于微服务的环境中的 Keycloak 身份验证流程

ala*_*bid 6 openid authentication spring-boot microservices keycloak

我想在基于微服务的环境中使用 Keycloak,其中身份验证基于 OpenID 端点 REST 调用(“/token”,没有重定向到 keycloak 登录页面),我想到的流程是这样的:

1. Front- end SPA 从“/token”端点检索令牌并存储在浏览器的 localStorage 中,然后随每个请求发送它。

2. 网关级认证:Acess Token从前端传递到网关,网关咨询Keycloak服务器,检查该令牌是否仍然有效(不会因注销端点调用而失效)。

3.基于微服务的授权:Acess Token从网关传递给微服务,微服务使用Spring Boot适配器离线检查令牌的签名(仅承载客户端?)然后根据令牌中的角色进行授权.

我的问题是:这个流程有意义还是你能建议另一个流程?使用什么类型的 Keycloak 客户端?使用 Spring Boot Adapter 传递令牌的理想方法是什么,首先应该这样做吗?请记住,我不是 Keycloak 专家,我已经完成了我的研究,但我仍然有疑问。

rav*_*iru 5

您的前端 SPA 应该是公共客户端,springboot 微服务应该是仅承载客户端,而网关可以是机密客户端。

您可以检查Keycloak提供的oidc适配器。对于 springboot,您可以使用 keycloak 提供的适配器

这里讨论了使用 api gateway 的类似解决方案

  • 不建议用于可通过互联网访问的应用程序。 (2认同)