第2章 リリース固有の変更
2.1. 互換性を失わせる変更点
重大な変更は、既存のユーザーの設定の変更を必要とするものとして識別されます。
2.1.1. X-Forwarded-Host
ヘッダーによるポートの動作の変更
X-Forwarded-Host
ヘッダーにはオプションでポートも含めることができます。以前のバージョンでは、ポートがヘッダーから省略されると、Red Hat build of Keycloak は実際の要求ポートにフォールバックしていました。たとえば、Red Hat build of Keycloak がポート 8080 でリッスンしていて、リクエストに X-Forwarded-Host: example.com
ヘッダーが含まれていた場合、解決された URL は http://example.com:8080
になります。
これが変更され、ポートが省略されると、解決された URL から削除されます。前の例から解決された URL は http://example.com
になります。
これを軽減するには、リバースプロキシーの X-Forwarded-Host
ヘッダーにポートを含めるか、X-Forwarded-Port
ヘッダーに必要なポートを設定するように指定します。
2.1.2. Oracle JDBC ドライバーのインストールに関する変更
ディストリビューションに明示的に追加する必要がある Oracle JDBC ドライバーに必要な JAR が変更されました。ojdbc11
JAR を提供する代わりに、Oracle データベースドライバーのインストール に記載されているように、ojdbc17
JAR を使用します。
2.1.3. H2 認証情報
今回のバージョンでは、デフォルトの H2 ベースの dev-file
データベースによって認証情報が変更されました。この dev のみデータベースを使用するインスタンスからの移行はサポートされていませんが、データベースのユーザー名とパスワードに以前のデフォルトを明示的に指定すると、既存の H2 データベースを引き続き使用できる場合があります。たとえば、keycloak.conf
で以下を指定します。
db-username=sa
db-password=password
2.1.4. 最新の OIDC 仕様に合わせた JWT クライアント認証
OpenID Connect core specification の最新のドラフトバージョンでは、クライアント認証方法 private_key_jwt
および client_secret_jwt
の JWT クライアントアサーションにおけるオーディエンス検証のルールが変更されました。
以前は、JWT クライアントアサーションの aud
クレームは The Audience SHOULD be the URL of the Authorization Server’s Token Endpoint
と緩く定義されていましたが、他の URL の使用が排除されていませんでした。
改訂された OIDC コア仕様では、より厳格なオーディエンスチェックが使用されます (The Audience value MUST be the OP’s Issuer Identifier passed as a string, and not a single-element array.
)。
private_key_jwt
と client_secret_jwt
の両方の JWT クライアント認証オーセンティケーターを適応させて、デフォルトでトークン内の対象ユーザー 1 つだけ許可されるようにしました。現在、オーディエンスは、クライアント JWT 認証で使用される発行者、トークンエンドポイント、イントロスペクションエンドポイント、またはその他の OAuth/OIDC エンドポイントにすることができます。ただし、現在許可されているオーディエンスは 1 つだけなので、他の無関係なオーディエンス値を使用できません。つまり、JWT トークンは実際には Red Hat build of Keycloak によるクライアント認証でのみ有効になります。
この厳格なオーディエンスチェックは、OIDC ログインプロトコル SPI の新しいオプションを使用して、以前のより緩いチェックに戻すことができます。サーバーが以下のオプションで起動された場合、引き続き JWT で複数のオーディエンスを使用することができます。
--spi-login-protocol-openid-connect-allow-multiple-audiences-for-jwt-client-authentication=true
このオプションは今後削除される可能性があることに注意してください。おそらく、Red Hat build of Keycloak 27 で削除されます。そのため、このオプションを使用する代わりに、単一のオーディエンスを使用するようにクライアントを更新することを強く推奨します。また、クライアント認証のために JWT を送信するときは、今後のバージョンの OIDC 仕様と互換性があるため、クライアントがオーディエンスに発行者 URL を使用することを推奨します。
2.1.5. 削除された機能と非推奨となった機能
このリリースでは、特定の機能が削除され、今後のリリースで削除されるようにその他の機能は非推奨としてマークされています。これらの変更の詳細は、リリースノート を参照してください。