2023年11月23日
要下载此版本,请访问 Keycloak 下载。
Keycloak 新增了客户端配置 fapi-2-security-profile
和 fapi-2-message-signing
,以确保 Keycloak 在与您的客户端通信时强制遵守最新的 FAPI 2 草案规范。感谢 Takashi Norimatsu 的贡献。
Keycloak 提供了对 OAuth 2.0 Demonstrating Proof-of-Possession at the Application Layer (DPoP) 的预览支持。感谢 Takashi Norimatsu 和 Dmitry Telegin 的贡献。
在之前的版本中,自省端点会自动返回访问令牌中可用的大部分声明。现在,在大多数协议映射器上有一个新的开关 Add to token introspection
。此新增功能提供了更大的灵活性,因为自省端点可以返回与访问令牌不同的声明。这是朝着“轻量级访问令牌”支持迈出的第一步,因为访问令牌可以省略许多仍然由自省端点返回的声明。从以前的版本迁移时,自省端点应返回与访问令牌返回的相同声明,因此迁移后默认行为应基本相同。感谢 Shigeyuki Kabano 的贡献。
OAuth 2.0 设备授权许可流程现在包含一个特性标志,因此您可以轻松禁用此功能。此功能默认仍处于启用状态。感谢 Thomas Darimont 的贡献。
Keycloak 提供了对 Passkeys 的预览支持。
Passkey 注册和身份验证通过 WebAuthn 的功能实现。因此,Keycloak 用户可以通过现有的 WebAuthn 注册和身份验证进行 passkey 注册和身份验证。
同步的 passkey 和设备绑定的 passkey 都可以用于同设备和跨设备身份验证。但是,passkey 操作的成功与否取决于用户的环境。请确保在 环境 中哪些操作可以成功。感谢 Takashi Norimatsu 的贡献,并感谢 Thomas Darimont 在此功能的想法和测试方面提供的帮助。
WebAuthn 策略现在包含一个新字段:Extra Origins
。它提供了与非 Web 平台(例如,原生移动应用程序)更好的互操作性。感谢 Charley Wu 的贡献。
之前存在一个臭名昭著的问题,即当用户在多个浏览器选项卡中打开登录页面并在其中一个选项卡中进行身份验证后,尝试在后续浏览器选项卡中进行身份验证时会打开 您已登录
页面。现在这种情况得到了改进,因为在第一个浏览器选项卡进行身份验证后,其他浏览器选项卡也会自动进行身份验证。仍然存在行为并非 100% 正确的极端情况,例如身份验证会话过期的情况,在这种情况下,身份验证会话仅在一个浏览器选项卡中重新启动,因此其他浏览器选项卡不会自动跟随登录。因此,我们仍计划在此领域进行改进。
Keycloak 支持新的密码策略,该策略允许指定用户在无需重新身份验证的情况下更改密码的最大身份验证时长。当此密码策略设置为 0 时,用户将被要求重新进行身份验证才能在帐户控制台或通过其他方式更改密码。您也可以指定低于或高于默认值 5 分钟的值。感谢 Thomas Darimont 的贡献。
对于某些环境而言,将 Keycloak 部署到多个独立的站点对于提供高可用性和从故障中快速恢复至关重要。此版本增加了对 Keycloak 主动-被动部署的预览支持。
在测试和验证可以维持负载并从故障场景中恢复的设置方面,我们投入了大量工作。要开始使用,请使用高可用性指南,其中还包括将高可用性 Keycloak 部署到云环境的全面蓝图。
先前版本中已弃用的 WildFly 和 JBoss EAP 的 OpenID Connect 适配器已在此版本中删除。它已被 Elytron OIDC 适配器取代,该适配器包含在 WildFly 中,并提供从 Keycloak 适配器的无缝迁移。
WildFly 和 JBoss EAP 的 SAML 适配器不再以 ZIP 下载形式分发,而是以 Galleon 功能包的形式分发,使其更易于安装和更无缝。
有关详细信息,请参阅 保护应用程序和服务指南。
Keycloak 现在具有 http-max-queued-requests
选项,允许在高负载下正确拒绝传入的请求。有关详细信息,请参阅 生产指南。
Keycloak 已切换到 RESTEasy Reactive。使用 quarkus-resteasy-reactive
的应用程序仍然可以从更快的启动时间、运行时性能和内存占用中受益,即使不使用响应式样式/语义也是如此。直接依赖于 JAX-RS API 的 SPI 应该与此更改兼容。依赖于 RESTEasy Classic(包括 ResteasyClientBuilder
)的 SPI 将不兼容,并且需要更新,对于 JAX-RS API(如 Jersey)的其他实现也是如此。
声明式用户配置文件在此版本中仍为预览功能,但我们正在努力将其升级为受支持的功能。欢迎提供反馈。如果您发现任何问题或有任何改进的想法,欢迎创建 Github issue,最好带有标签 area/user-profile
。还建议查看 升级指南,其中包含此版本迁移的更改,以获取有关迁移的其他信息。
对于具有许多组和子组的用例,围绕组搜索的性能得到了改进。进行了一些改进,允许分页查找子组。感谢 Alice 的贡献。
主题的消息属性文件现在以 UTF-8 编码读取,并自动回退到 ISO-8859-1 编码。
有关更多详细信息,请参阅迁移指南。
Map Store 在之前的版本中一直是一项实验性功能。从此版本开始,它将被删除,用户应继续使用当前的 JPA 存储。有关详细信息,请参阅迁移指南。
在升级之前,请参阅 迁移指南,以获取完整的更改列表。