第2章 リリース固有の変更


2.1. バージョン 26.2.x の互換性を失わせる変更

バージョン 26.2.x では、互換性を失わせる変更がいくつか存在します。重大な変更は、既存のユーザーの設定の変更を必要とするものとして識別されます。

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 データベースの認証情報が変更されました。この開発専用データベースを使用するインスタンスからの移行はサポートされていませんが、データベースのユーザー名とパスワードの古いデフォルトを明示的に指定すると、既存の 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_jwtclient_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. 新しくサポート機能に関する変更

バージョン 26.2.x では、次の変更が既存の機能に新たなサポートを提供する主要な改善点です。

2.1.6. 標準トークン交換

このリリースでは、Red Hat build of Keycloak は 標準トークン交換 (機能 token-exchange-standard:v2) のサポートを追加しました。過去の Red Hat build of Keycloak リリースでは、Red Hat build of Keycloak にはプレビュートークン交換機能しかありませんでした。この機能は現在 レガシートークン交換 (機能 token-exchange:v1) と呼ばれています。レガシートークン交換はまだプレビュー段階であり、以前のリリースと同じように機能します。内部間トークン交換 を使用していた場合は、新しい標準トークン交換への移行を検討してください。

レガシートークン交換を引き続き使用する場合、標準のトークン交換機能を無効にする必要はありません。クライアントは、Red Hat build of Keycloak クライアントで標準トークン交換が有効になっている場合にのみ、標準トークン交換を使用します。ただし、標準のトークン交換への移行が推奨されます。これは公式にサポートされている方法であり、機能拡張の優先事項です。

新しい標準トークン交換への移行を計画する際には、次の注意事項を考慮してください。

  • 新しい標準トークン交換を表す機能 token-exchange-standard は、デフォルトで有効になっています。リクエストが新しい標準トークン交換によって確実に処理されるように、レガシートークン交換を表す token-exchange 機能を無効にすることを推奨します。
  • 標準トークン交換機能とレガシートークン交換機能の両方を有効にできます。これは、標準のユースケース (internal-internal) と、レガシートークン交換によってのみ実装されるその他のトークン交換ユースケースにも対応する必要がある場合に役立ちます。たとえば、外部から内部へのトークン交換 は、レガシートークン交換によってのみ実装されます。この場合、Red Hat build of Keycloak は標準的な内部間リクエストを標準トークン交換によって優先的に処理し、その他のリクエストはレガシートークン交換によって処理します。標準トークン交換またはレガシートークン交換の選択は、特定のリクエストのパラメーターに基づいて決定されます。たとえば、requested_issuerrequested_subject などの標準以外のパラメーターを含むリクエストはレガシーとみなされます。

    レガシートークン交換機能がまだ必要な場合は、バージョン 2 (FGAP:v2) では、トークン交換権限がサポートされていないため、Fine-grained admin permissions バージョン 1 (FGAP:v1) も有効にする必要があります。これは意図的なものであり、トークン交換は概念的には実際には "admin" 権限ではないため、トークン交換権限は FGAP:v2 に追加されませんでした。

  • 標準トークン交換では、クライアントでスイッチを有効にする必要があります。トークン交換を有効にする方法 を参照してください。

2 種類のトークン交換の動作における次の追加の変更を考慮してください。

  • Fine-grained admin permissions は、標準トークン交換で必要なくなり、サポートされなくなりました。
  • スコープとオーディエンスの動作に関して、最も注目すべき変更点は、適用されるクライアントスコープが audience パラメーターで指定された "target" クライアントではなく、トークン交換リクエストをトリガーするクライアントをベースにしている点です。仕様に記載されているように、audience パラメーターの複数の値がサポートされています。トークン交換を有効にする方法 を参照してください。
  • パブリッククライアントはトークン交換リクエストを送信できなくなりました。レガシートークン交換では、パブリッククライアントが自分自身とトークンを交換して、元のトークンをダウンスコープできました。このユースケースは、代わりにリフレッシュトークン付与を使用することで対応できます。リフレッシュトークン付与では、OAuth2 仕様 に記載されているように、scope パラメーターを使用して、更新されたアクセストークンのスコープをダウンスコープできます。
  • このリリースでは、SAML アサーションのアクセストークンの交換はサポートされていません。つまり、requested_token_type=urn:ietf:params:oauth:token-type:saml2 の使用はサポートされていません。
  • アクセストークンをリフレッシュトークンと交換できるのは トークン交換を有効にする方法 で説明されているように、クライアント側で明示的に有効になっている場合のみです。

現在、オフラインセッションから発行されたサブジェクトトークンを使用して、オフライントークンのリクエストやリフレッシュトークンの交換を行うことはサポートされていません。可能な場合は、リフレッシュトークンではなくアクセストークンを交換することを推奨します。

2.1.7. Fine-grained admin permissions

Red Hat build of Keycloak は、Fine-grained admin permissions V2 を導入することで、管理者権限に対する認可モデルをさらに柔軟で使いやすく改善しています。

  • FGAP:V2 機能はデフォルトで有効になっています。
  • FGAP:V1 機能はまだプレビュー段階であり、--features=admin-fine-grained-authz:v1 を使用して有効にできます。ただし、V1 は今後のリリースで非推奨になり、削除される可能性があります。

2.1.7.1. V1 から V2 への移行

権限モデルの構造そのものを見直ししたため、V1 から V2 への自動移行は利用できません。移行を簡素化するには、以下を実行します。

  • 新しい admin-permissions クライアントが導入されました。このクライアントは、レルムの機能を有効にすると作成されます。クライアントは FGAP:V2 の認可モデルを保持します。
  • 既存の FGAP:V1 承認モデルは、realm-management クライアント内では変更されません。
  • 管理者は、新しいモデルを使用して、権限とポリシーを再作成する 必要があります。この新しいモデルは、管理コンソールの更新された Permissions セクションで設定可能です。

2.1.7.2. FGAP:V1 と FGAP:V2 の主な違い

  • レルムレベルの有効化:

    • FGAP:V2 は、レルム設定 の新しい 管理者権限 スイッチを使用してレルムに対して有効にできます。
  • 管理の一元化:

    • リソース固有の Permissions タブ (ユーザー、グループ、クライアント、ロール) が削除されました。
    • 新しい Permissions セクションでは、管理コンソールの 1 カ所からすべての管理権限を一元管理できます。
  • 明示的な操作スコープ:

    • 権限間の推移的な依存関係が削除されました。
    • 管理者は、必要な権限をそれぞれ明示的に割り当てる必要があります。
    • 例: リソースの表示と管理の両方を行うには、権限の viewmanage スコープの両方を個別に割り当てる必要があります。
  • 権限モデルの変更:

    • user-impersonated 権限が 削除 されました。
  • クライアント設定権限が 削除 されました。V2 で明示的な操作スコープが導入されたことにより、manage と configure の区別が曖昧になりました。グループのメンバーを管理する権限では、レルム管理者がグループからメンバーの割り当てを解除できません。この制限が追加されたのは、V1 ではグループのメンバーが通常のレルムユーザーになることができ、権限がなくても、レルムでユーザーを作成することができていたためです。今後のリリースでは、グループからメンバーを削除できる追加のスコープが提供される予定です。
  • 柔軟なリソーススコープ設定:

    • 権限が 単一のリソース (クライアント、グループ、およびロール) または すべてのリソース (ユーザー) に付与されていた V1 とは異なり、V2 では柔軟性が向上しています。
    • 管理者は、以下のパーミッションを定義できるようになりました。

      • 特定のリソース
      • 選択されたリソースのセット
      • 特定のタイプの すべてのリソース
      • これは、クライアント、ユーザー、グループ、ロールなど すべてのリソースタイプ に適用されます。
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る