Keycloak.X 简介

2019年10月11日,作者:Stian Thorgersen

我们试图改进什么?

Keycloak 的第一个稳定版本早在 2014 年就发布了。与所有软件开发一样,总有一些可以做得更好的地方。

通过 Keycloak.X,我们旨在引入一些更大的变更,使 Keycloak 更精简、更易用且更具前瞻性。

Keycloak.X 的一些目标包括

这项工作将分为几个部分

发行版

构建一个由 Quarkus 驱动的新发行版将使我们能够显著缩短启动时间和内存占用。

我们还将能够创建一个在大小和依赖项方面更精简的发行版。减少依赖项将进一步减少第三方库中 CVE 的数量。

我们还计划引入一个合适的 Keycloak 配置文件,我们将在其中直接记录如何配置与 Keycloak 相关的所有内容。在当前基于 WildFly 的发行版中,配置文件非常复杂,因为它包含了配置底层应用服务器的所有内容,而且通常需要参考 WildFly 文档才能弄清楚如何正确配置。

存储

当前的存储层很复杂,尤其是在部署到多站点时。它存在一些可扩展性问题,例如 realm 和客户端的数量。会话仅保存在内存中,这可能有利于性能,但对于扩展来说不是很好,因为考虑到大部分会话在大多数时间都是空闲和未使用的。

新的存储层究竟会是什么样子仍有待决定,但我们确信我们想要

提供程序

今天的提供程序存在一些我们想要解决的问题。包括

持续交付

我们旨在使 Keycloak 在持续交付的世界中更易于使用。这应该考虑 Keycloak 升级、自定义提供程序以及配置。

Keycloak 升级应该是无缝的,不应有任何重大更改,而应有弃用期。

应该可以更轻松地管理和重现 Keycloak 的配置,包括 realm 配置,在不同的环境中。开发人员应该能够在开发环境中尝试一些配置更改,推送到测试环境,最后在生产环境中使更改生效。

贡献

我们非常欢迎社区在 Keycloak.X 上提供帮助。您可以通过代码、讨论或仅仅是试用并向我们提供反馈来做出贡献。

迁移到 Keycloak.X

需要迁移到 Keycloak.X。事实上,将需要多次迁移,因为前面提到的所有内容不会一次性完成。

我们的目标是使这次迁移尽可能简单和轻松。

时间安排

我们从 Quarkus 驱动的发行版开始着手。目标是在 2019 年底之前拥有一个功能齐全的稳定发行版,但我们已经有 一个原型,您可以试用并为其做贡献。

在 2020 年,我们计划同时致力于存储层和提供程序。希望到 2020 年底,我们将解决大部分(如果不是全部)问题。

我们将继续并行支持当前的 Keycloak 版本和 Keycloak.X,并将给所有人充足的时间进行迁移,然后我们最终将停止对旧版本的支持。