2.2. 可能会造成问题的更改


在版本 26.2.x 中存在一些破坏的更改。破坏更改会被识别,因为需要从现有用户更改其配置。

2.2.1. 使用 X-Forwarded-Host 标头更改端口行为

X-Forwarded-Host 标头也可以选择包含端口。在以前的版本中,当端口在标头中省略时,Red Hat build of Keycloak fell 会返回到实际请求端口。例如,如果红帽构建的 Keycloak 侦听端口 8080,并且请求包含 X-Forwarded-Host: example.com 标头,则解析的 URL 为 http://example.com:8080

现在,更改了这个端口,并省略端口会导致将其从解析的 URL 中删除。上例中的解析 URL 现在为 http://example.com

要缓解这种情况,使您的反向代理在 X-Forwarded-Host 标头中包含端口,或者将其配置为使用所需端口设置 X-Forwarded-Port 标头。

2.2.2. 安装 Oracle JDBC 驱动程序的更改

需要明确添加到发行版中的 Oracle JDBC 驱动程序所需的 JAR 已更改。如安装 Oracle 数据库驱动程序 中所述,不要使用 ojdbc 11 JAR,而不是提供 ojdbc11 JAR。

2.2.3. H2 凭证

在这个版本中,默认的基于 H2 的 dev-file 数据库更改了其凭据。不支持从使用此 dev 的实例迁移时,如果明确为数据库用户名和密码提供旧的默认值,则可能可以继续使用现有的 H2 数据库。例如,在 keycloak.conf 中指定:

db-username=sa

db-password=password

OpenID Connect 核心规范 的最新草案版本更改了在 JWT 客户端断言中的 audience 验证规则,用于客户端身份验证方法 private_key_jwtclient_secret_jwt

在以前的版本中,JWT 客户端断言的 aud 声明被松散定义为 Audience SHOULD 是授权服务器 Token Endpoint 的 URL,它不会排除其他 URL 的使用。

修订的 OIDC Core 规格使用更严格的 audience 检查: Audience 值需要是 OP 的 Issuer 标识符,作为字符串传递,而不是单元素数组。

我们调整了 private_key_jwtclient_secret_jwt 的 JWT 客户端身份验证验证器,默认只允许令牌中的一个 audience。现在,audience 可以是签发者、令牌端点、内省端点或其它 OAuth/OIDC 端点,供客户端 JWT 身份验证使用。但是,由于目前允许单个受众,这意味着无法使用其他不相关的 audience 值,因此确保 JWT 令牌仅能由红帽构建的 Keycloak 进行客户端身份验证来使用。

此严格的 audience 检查可以通过 OIDC 登录协议 SPI 的新选项恢复到以前的更宽松的检查。如果服务器通过 选项启动,仍允许在 JWT 中使用多个受众:

--spi-login-protocol-openid-connect-allow-multiple-audiences-for-jwt-client-authentication=true

请注意,这个选项可能会在以后被删除。可能在红帽构建的 Keycloak 27 中。因此,强烈建议您更新您的客户端以使用单个受众,而不是使用这个选项。另外,建议您在发送 JWT 进行客户端身份验证时,客户端使用签发者 URL 进行客户端身份验证,因为它将与将来的 OIDC 规格版本兼容。

2.2.5. 已删除和弃用的功能

在版本 26.2.x 中,某些功能已被删除,其他功能被标记为已弃用,以便在后续版本中删除。有关这些更改的详情,请查看 发行注记

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat