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



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

1. 前端 SPA 从"/token"端点检索令牌并存储在浏览器的 localStorage 中,然后随每个请求一起发送。

2.网关级身份验证:Acess令牌从前端传递到网关,网关咨询Keycloak服务器以检查令牌是否仍然有效(未因注销端点调用而失效(。

3. 基于微服务的授权:Acess 令牌从网关传递到微服务,使用 Spring 引导适配器将微服务脱机检查令牌的签名(仅持有者客户端?

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

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

您可以检查 Keycloak 提供的 oidc 适配器。对于弹簧靴,您可以使用钥匙斗篷提供的适配器

此处讨论了使用 api 网关的类似解决方案

相关内容

最新更新