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 数据库驱动程序 中所述,不要使用
JAR,而不是提供 ojdbc11 JAR。
ojdbc
11
2.2.3. H2 凭证 复制链接链接已复制到粘贴板!
在这个版本中,默认的基于 H2 的 dev-file
数据库更改了其凭据。不支持从使用此 dev 的实例迁移时,如果明确为数据库用户名和密码提供旧的默认值,则可能可以继续使用现有的 H2 数据库。例如,在 keycloak.conf
中指定:
db-username=sa
db-password=password
2.2.4. 与最新的 OIDC 规格一致的 JWT 客户端身份验证 复制链接链接已复制到粘贴板!
OpenID Connect 核心规范 的最新草案版本更改了在 JWT 客户端断言中的 audience 验证规则,用于客户端身份验证方法 private_key_jwt
和 client_secret_jwt
。
在以前的版本中,JWT 客户端断言的 aud
声明被松散定义为 Audience SHOULD 是授权服务器 Token Endpoint 的 URL
,它不会排除其他 URL 的使用。
修订的 OIDC Core 规格使用更严格的 audience 检查: Audience 值需要是 OP 的 Issuer 标识符,作为字符串传递,而不是单元素数组。
我们调整了 private_key_jwt
和 client_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 中,某些功能已被删除,其他功能被标记为已弃用,以便在后续版本中删除。有关这些更改的详情,请查看 发行注记。