1.6. 新機能および機能拡張
次のリリースノートは、最初の 26.0 リリースである Red Hat build of Keycloak 26.0.5 を対象としています。
1.6.1. Java サポート
Red Hat build of Keycloak は OpenJDK 21 をサポートするようになりました。OpenJDK 17 のサポートは非推奨となり、次のリリースでは削除され、代わりに OpenJDK 21 が採用される予定です。
1.6.2. Keycloak JavaScript アダプターがスタンドアロンになる
Keycloak JavaScript アダプターはスタンドアロンライブラリーになったため、Red Hat build of Keycloak サーバーから静的に提供されなくなりました。目標は、ライブラリーを Red Hat build of Keycloak サーバーから切り離し、独立してリファクタリングできるようにし、コードを簡素化し、今後のメンテナンスを容易にすることです。さらに、ライブラリーはサードパーティーの依存関係がなくなったため、より軽量になり、さまざまな環境で使いやすくなりました。
変更点の詳細は、アップグレードガイド を参照してください。
1.6.3. 組織、マルチテナンシー、顧客アイデンティティーおよびアクセス管理
このリリースでは組織が導入されています。この機能は、Red Hat build of Keycloak の既存のアイデンティティーおよびアクセス管理 (IAM) 機能を活用して、Business-to-Business (B2B) や Business-to-Business-to-Consumer (B2B2C) の統合などの顧客アイデンティティーおよびアクセス管理 (CIAM) ユースケースに対応します。この機能の最初のリリースでは、レルムの既存の機能を使用することで、レルムがビジネスパートナーや顧客と統合できるようにするコア機能が提供されます。
- 組織の管理
- 組織メンバーの管理
- 招待リンクや仲介などのさまざまなストラテジーを使用したメンバーのオンボード
- 対象が属する組織に関する追加のメタデータを使用したトークンへの追記
詳細は、組織の管理 を参照してください。
1.6.4. レルム内のソーシャルブローカーの複数のインスタンスに組織を使用する
レルム内に同じソーシャルブローカーのインスタンスを複数指定できるようになりました。
通常、レルムには同じソーシャルブローカーに複数のインスタンスは必要ありません。ただし、organization
機能を使用すると、ソーシャルブローカーが同じでインスタンスが異なる場合に、異なる組織にリンクできます。
ソーシャルブローカーを作成するときは、Alias
を指定し、必要に応じて他のブローカーと同様に Display name
を指定します。
1.6.5. アイデンティティープロバイダーはレルム表現から利用できなくなる
アイデンティティープロバイダーが多数あるレルムと組織のスケーリングを支援するために、レルム表現にはアイデンティティープロバイダーのリストが保持されなくなりました。ただし、レルムをエクスポートするときには、レルム表現から引き続き使用できます。
詳細は、アイデンティティープロバイダー を参照してください。
1.6.6. ユーザーセッションがデフォルトで保持される
以前のバージョンの Red Hat build of Keycloak では、オフラインユーザーとオフラインクライアントセッションのみがデータベースに保存されていました。新しい機能である persistent-user-sessions は、オンラインユーザーセッションとオンラインクライアントセッションをメモリーとデータベースの両方に保存します。その結果、Red Hat build of Keycloak のすべてのインスタンスが再起動またはアップグレードされた場合でも、ユーザーはログインしたままになります。
詳細は、永続的なユーザーセッション を参照してください。
この機能はデフォルトで有効化されています。無効にする場合は、分散キャッシュの設定 の章の 揮発性ユーザーセッション
の手順を参照してください。
1.6.7. Account Console および Admin Console に関する変更点
1.6.7.1. 新しい Admin Console のデフォルトログインテーマ
Keycloak
ログインテーマの新しいバージョンが存在します。v2
バージョンでは、ユーザーの好みに応じてダークテーマに自動的に切り替える機能のサポートなど、外観と操作性が向上しています。以前のバージョン (v1
) は非推奨であり、今後のリリースで削除される予定です。
すべての新しいレルムのデフォルトのログインテーマは keycloak.v2
になります。また、ログインテーマを明示的に設定していない既存のレルムは、keycloak.v2
に切り替えられます。
1.6.7.2. Admin Console および Account Console の PatternFly 5
Red Hat build of Keycloak 24 では、デザインシステムの最新バージョンである PatternFly 5 が使用されるようになりました。これは、Welcome ページが更新され、Red Hat build of Keycloak のユーザーインターフェイスの基盤となります。このリリースでは、Admin Console と Account Console も PatternFly 5 を使用するように更新されています。Admin Console および Account Console を拡張およびカスタマイズする場合は、PatternFly 5 の変更点 を確認し、それに応じてカスタマイズを更新してください。
1.6.9. You are already logged in のメッセージ
Red Hat build of Keycloak 24 リリースでは、ユーザーが複数のブラウザータブで並行して認証する機能が改善されました。ただし、この機能の改善は認証セッションの有効期限が切れたときに対応していませんでした。このリリースでは、ユーザーがすでに 1 つのブラウザータブにログインしていて、別のブラウザータブで認証セッションの有効期限が切れた場合、Red Hat build of Keycloak では OIDC/SAML エラーによりクライアントアプリケーションにリダイレクトされます。その結果、クライアントアプリケーションはすぐに認証を再試行することができ、通常は SSO セッションによりアプリケーションに自動的にログインするはずです。
認証セッションの有効期限が切れ、ユーザーがすでにログインしている場合は You are already logged in というメッセージがエンドユーザーに表示されないことに注意してください。このエラーを処理するには、アプリケーションを更新することを検討してください。
詳細は、認証セッション を参照してください。
1.6.10. ユーザー属性による検索で大文字と小文字が区別されるようになる
ユーザー属性でユーザーを検索する場合、Red Hat build of Keycloak は、強制的に小文字の比較がされるようにし、ユーザー属性名が検索されなくなりました。この変更の目的は、ユーザー属性テーブルで Red Hat build of Keycloak ネイティブインデックスを使用して検索を高速化することでした。データベースの照合で大文字と小文字が区別されない場合は、検索結果は同じままになります。データベースの照合で大文字と小文字が区別される場合、以前よりも検索結果が少なくなる可能性があります。
1.6.11. パスワードにユーザー名が含まれているかどうかを確認するパスワードポリシー
Red Hat build of Keycloak は、ユーザー名を含むユーザーパスワードを拒否できる新しいパスワードポリシーをサポートしています。
1.6.12. 必須アクションの改善
Admin Console では、特定のレルムの Required actions タブでいくつかのアクションを設定できるようになりました。現在、Update password は唯一、設定可能で、組み込まれている必須アクションです。Maximum Age of Authentication の設定をサポートしています。これは、ユーザーが再認証なしで kc_action
パラメーター (Account Console でのパスワード更新などに使用) でパスワードを更新できる最大時間です。
必要なアクションの並べ替えも改善されました。認証中に複数のアクションが必要な場合、認証中に設定されたアクション (たとえば、kc_action
パラメーターによって) であるか、管理者によってユーザーアカウントに手動で追加されたアクションであるかに関係なく、すべてのアクションが一緒にソートされます。
1.6.13. SAML のデフォルトのクライアントプロファイル
セキュアな SAML クライアントのデフォルトのクライアントプロファイルが追加されました。Admin Console でレルムのクライアントポリシーを参照すると、新しいクライアントプロファイル saml-security-profile
が表示されます。これを使用する場合、SAML クライアントにセキュリティーのベストプラクティスが適用されます。たとえば、署名が強制され、SAML リダイレクトバインディングが無効になり、ワイルドカードリダイレクト URL が禁止されます。
1.6.14. ユーザー削除同意に関するパフォーマンス向上
クライアントスコープまたは完全なレルムが削除されると、関連付けられているユーザーの同意も削除される必要があります。パフォーマンスを向上させるために、テーブル USER_CONSENT_CLIENT_SCOPE
に新しいインデックスが追加されました。
テーブルに 300,000 を超えるエントリーが含まれている場合、Red Hat build of Keycloak は自動スキーマ移行中にインデックスの作成をスキップし、代わりに SQL ステートメントをコンソールに記録することに注意してください。Red Hat build of Keycloak 起動後に、データベースでステートメントを手動で実行する必要があります。
1.6.15. 新たに一般化された認証情報のイベントタイプ
認証情報の更新 (UPDATE_CREDENTIAL
) および削除 (REMOVE_CREDENTIAL
) 向けに、一般化されたイベントが存在するようになりました。認証情報の種類は、イベントの credential_type
属性に記述されます。新しいイベントタイプは、Email Event Listener によってサポートされます。
UPDATE_PASSWORD
、UPDATE_PASSWORD_ERROR
、UPDATE_TOTP
、UPDATE_TOTP_ERROR
、REMOVE_TOTP
、REMOVE_TOTP_ERROR
のイベントタイプは現在非推奨であり、今後のバージョンで削除される予定です。
1.6.16. メトリクスおよびヘルスエンドポイントの管理ポート
メトリクスとヘルスチェックのエンドポイントは、標準の Red Hat build of Keycloak サーバーポート経由ではアクセスできなくなりました。これらのエンドポイントは外部には公開されるべきではないため、別のデフォルト管理ポート 9000
からアクセスできます。
別のポートを使用すると、Kubernetes 環境での Red Hat build of Keycloak のエンドポイントとして、ユーザーに公開されないようになります。新しい管理インターフェイスでは、設定可能な新しいオプションセットが提供されます。
Red Hat build of Keycloak Operator では、管理インターフェイスがデフォルトで有効になっていると想定されています。詳細は、管理インターフェイスの設定 を参照してください。
1.6.16.1. デフォルトで有効になっている埋め込みキャッシュのメトリクス
埋め込みキャッシュのメトリクスがデフォルトで有効になりました。レイテンシーのヒストグラムを有効にするには、cache-metrics-histograms-enabled
オプションを true
に設定します。
1.6.16.2. HTTP エンドポイントのメトリクスがデフォルトで有効に
Red Hat build of Keycloak によって提供されるメトリクスに、http_server
で始まる HTTP サーバーメトリクスが含まれるようになりました。以下に例を示します。
http_server_active_requests 1.0 http_server_requests_seconds_count{method="GET",outcome="SUCCESS",status="200",uri="/realms/{realm}/protocol/{protocol}/auth"} 1.0 http_server_requests_seconds_sum{method="GET",outcome="SUCCESS",status="200",uri="/realms/{realm}/protocol/{protocol}/auth"} 0.048717142
新しいオプション http-metrics-histograms-enabled
と http-metrics-slos
を使用して、デフォルトのヒストグラムバケットまたはサービスレベル目標 (SLO) の特定のバケットを有効にします。http_server_requests_seconds_bucket
で提供される追加のメトリクスシリーズの使用方法に関するヒストグラムの詳細は Prometheus ドキュメント を参照してください。
1.6.17. クライアントライブラリーの更新
1.6.17.1. クライアントライブラリーの専用のリリースサイクル
このリリースから、一部の Red Hat build of Keycloak クライアントライブラリーのリリースサイクルは、Red Hat build of Keycloak サーバーリリースサイクルから独立して設定されます。26.0 リリースは、クライアントライブラリーが Red Hat build of Keycloak サーバーとともにリリースされる最後のリリースになる可能性があります。今後、クライアントライブラリーは、Red Hat build of Keycloak サーバーとは異なるタイミングでリリースされる可能性があります。
クライアントライブラリーは次のアーティファクトです。
-
Java 管理クライアント - Maven アーティファクト
org.keycloak:keycloak-admin-client
-
Java 認証クライアント - Maven アーティファクト
org.keycloak:keycloak-authz-client
-
Java ポリシーエンフォーサー - Maven アーティファクト
org.keycloak:keycloak-policy-enforcer
1.6.17.2. サーバーとのクライアントライブラリーの互換性
このリリース以降、クライアントライブラリーは、同じサーバーバージョンと、以前のメジャーサーバーバージョンでテストおよびサポートされます。
サーバーバージョンでサポートされているクライアントライブラリーのバージョンの詳細は、アップグレードガイド を参照してください。
1.6.18. Cookie の更新
1.6.18.1. すべての Cookie に設定された SameSite 属性
以前は、次の Cookie は SameSite
属性を設定しませんでしたが、最近のブラウザーバージョンでは、これらの Cookie はデフォルトで SameSite=Lax
に設定されます。
-
KC_STATE_CHECKER
はSameSite=Strict
に設定されます。 -
KC_RESTART
はSameSite=None
に設定されます。 -
KEYCLOAK_LOCALE
はSameSite=None
に設定されます。 -
KEYCLOAK_REMEMBER_ME
はSameSite=None
に設定されます。
デフォルト値の SameSite=Lax
が原因で、POST ベースのバインディングにおいて問題が発生します。これは主に SAML が該当しますが、一部の OpenID Connect/OAuth 2.0 フローでも採用されています。
1.6.18.2. KC_AUTH_STATE cookie の削除
Cookie KC_AUTH_STATE
は削除され、この Red Hat build of Keycloak サーバーで必要なくなったため、この Cookie は設定されていません。
1.6.19. 軽量アクセストークン
1.6.19.1. 軽量アクセストークンがさらに軽量に
以前のリリースでは、軽量アクセストークンのサポートが追加されました。このリリースでは、軽量アクセストークンからさらに多くの組み込みクレームが削除されています。クレームはプロトコルマッパーによって追加されます。一部は、OIDC 仕様で厳密に要求されていないため、通常のアクセストークンや ID トークンにも影響します。
-
クレーム
sub
とauth_time
は、プロトコルマッパーによって追加されるようになりました。これらは、すべてのクライアントに自動的に追加される新しいクライアントスコープbasic
でデフォルト設定されています。クレームは以前と同様に ID トークンとアクセストークンに追加されますが、軽量アクセストークンには追加されません。 -
現在、クレーム
nonce
は、ID トークンにのみ追加されます。通常のアクセストークンや軽量アクセストークンには追加されません。下位互換性のために、このクレームをプロトコルマッパーによってアクセストークンに追加できますが、これは明示的に設定する必要があります。 -
現在、
session_state
は、どのトークンにも追加されていません。プロトコルマッパーで追加することもできます。他の専用クレームsid
は、仕様によって引き続きサポートされており、以前のバージョンで提供されており、まったく同じ値が使用されます。
詳細は、クライアントスコープの新規デフォルト basic を参照してください。
1.6.19.2. 管理 REST API の軽量アクセストークン
軽量アクセストークンが管理 REST API で使用できるようになりました。security-admin-console
および admin-cli
クライアントは、デフォルトで軽量アクセストークンを使用するようになったため、このクライアント上で “Always Use Lightweight Access Token” と “Full Scope Allowed” が有効になっています。ただし、Admin Console での動作は実質的に同じままになるはずです。これら 2 つのクライアントに変更を加えた場合や、他の目的で使用している場合は注意してください。
1.6.20. トークンイントロスペクションエンドポイントでの application/jwt メディアタイプのサポート
トークンイントロスペクションエンドポイントを呼び出す際に、HTTP Header Accept: application/jwt
を使用できます。特定のクライアントに対して有効にすると、完全な JWT アクセストークンを含むトークンイントロスペクションエンドポイントからクレーム jwt
が返されます。これは、イントロスペクションエンドポイントを呼び出すクライアントが軽量アクセストークンを使用した場合に特に便利です。
1.6.21. パスワードの変更
1.6.21.1. Argon2 パスワードハッシュ
Argon2 は現在、非 FIPS 環境での Red Hat build of Keycloak で使用されるデフォルトのパスワードハッシュアルゴリズムです。
Argon2 は 2015 年のパスワードハッシュコンテスト で優勝し、OWASP によって推奨されるハッシュアルゴリズムです。
Red Hat build of Keycloak 24 では、PBKDF2 のデフォルトのハッシュ反復が 27.5K から 210K に増加し、パスワードハッシュの生成に必要な CPU 時間が 10 倍以上増加しました。Argon2 を使用すると、Red Hat build of Keycloak の以前のリリースとほぼ同じ CPU 時間で、セキュリティーがさらに強化されます。1 つの欠点として、Argon2 ではメモリーがより多く必要になりますが、これは GPU 攻撃に耐えるためには必要です。Red Hat build of Keycloak の Argon2 のデフォルトでは、ハッシュ要求ごとに 7MB が必要です。
メモリーと CPU の過剰な使用を防ぐため、デフォルトでは、Argon2 によるハッシュの並列計算において、JVM で利用可能なコア数が上限となっています。Argon2 のメモリー集約型の性質をサポートするために、デフォルトの GC が ParallelGC から G1GC に更新され、ヒープの使用率が向上します。
Argon2 は FIPS 140-2 に準拠していないことに注意してください。したがって、FIPS 環境の場合、デフォルトのアルゴリズムは引き続き PBKDF2 になります。また、FIPS 以外の環境で使用しており、FIPS 環境に移行する予定がある場合は、最初にパスワードポリシーを pbkdf2-sha512
などの FIPS 準拠アルゴリズムに変更することを検討してください。そうしないと、ユーザーは FIPS 環境に切り替えた後にログインできなくなります。
1.6.21.2. パスワードにユーザー名が含まれているかどうかを確認するパスワードポリシー
Red Hat build of Keycloak は、ユーザー名を含むユーザーパスワードを拒否できる新しいパスワードポリシーをサポートしています。
1.6.22. パスキーの改善 (プレビュー)
Passkeys 条件付き UI のサポートが追加されました。このプレビュー機能を有効にすると、専用のオーセンティケーターが利用可能になります。利用可能なパスキーアカウントのリストから選択し、それに基づいてユーザーを認証できます。
1.6.23. 最初のブローカーログイン時に既存の IDP リンクを上書きするためのオーセンティケーター
新しいオーセンティケーター Confirm override existing link
が存在します。このオーセンティケーターを使用すると、以前は別の IDP アイデンティティーにリンクされていた Red Hat build of Keycloak ユーザーのリンクされた IDP ユーザー名を上書きできます。詳細は、既存のブローカーの上書きリンク を参照してください。
1.6.24. 認可の変更
1.6.24.1. 認可クライアントライブラリーの重大な修正
keycloak-authz-client
ライブラリーのユーザーの場合、AuthorizationResource.getPermissions (…)
を呼び出すと、List<Permission>
が正しく返されるようになりました。以前は、メソッド宣言で List<Permission>
が宣言されていたにもかかわらず、実行時に List<Map>
が返されていました。
この修正により、List またはその内容を List<Map>
にキャストする必要のあったコードが機能しなくなります。
1.6.24.2. クライアントの認可設定をエクスポートするときに ID が設定されなくなる
クライアントの認可設定をエクスポートすると、リソース、スコープ、ポリシーの ID が設定されなくなります。その結果、あるクライアントから別のクライアントに設定をインポートできるようになりました。
1.6.26. LDAP 接続プールの設定
このリリースでは、LDAP 接続プールの設定はシステムプロパティーのみに依存します。
詳細は、接続プールの設定 を参照してください。
1.6.27. Microsoft Active Directory を使用する場合に新しい LDAP ユーザーがデフォルトで有効に
Microsoft AD を使用しており、管理インターフェイスを通じてユーザーを作成している場合、ユーザーはデフォルトで有効な状態で作成されます。
以前のバージョンでは、ユーザーに (一時的ではない) パスワードを設定した後にのみ、ユーザーのステータスを更新できました。この動作は、他の組み込みユーザーストレージとも、LDAP プロバイダーによってサポートされている他の LDAP ベンダーとも一致していませんでした。
1.6.28. java-keystore
キープロバイダーはより多くのアルゴリズムと vault シークレットをサポート
外部 Java キーストアファイルからレルムキーをロードできるようにする java-keystore
キープロバイダーは、すべての Red Hat build of Keycloak アルゴリズムを管理するように変更されました。また、ストアから実際のキーを取得するために必要なキーストアとキーシークレットは、vault を使用して設定できます。したがって、Red Hat build of Keycloak レルムは、データベースに機密データを保存せずに、暗号化されたファイルの任意のキーを外部化できます。
このサブジェクトに関する詳細は、レルムキーの設定 を参照してください。
1.6.29. セッションの存続期間とアイドル計算に若干変更が加えられる
以前のバージョンでは、セッションがまだ有効かどうかを検証する場合のセッションの最大存続期間とアイドルタイムアウトの計算が若干異なっていました。このバージョンで、検証ではプロジェクトの他の部分と同じコードが使用されるようになりました。
セッションが Remember Me 機能を使用している場合、アイドルタイムアウトと最大有効期間は、共通の SSO の設定値と、Remember me の設定値のどちらか大きい方が適用されます。
1.6.30. 新しいホスト名オプション
ホスト名の設定は複雑なため、このリリースにはホスト名 v2 オプションが含まれています。元のホスト名オプションは削除されました。カスタムホスト名設定がある場合は、新しいオプションに移行する必要があります。これらのオプションの動作も変更されていることに注意してください。
詳細は、新しいホスト名オプション を参照してください。
1.6.31. ロギングの強化
1.6.31.1. リモートロギングの Syslog
Red Hat build of Keycloak は、RFC 5424 で定義されたプロトコルに基づいて、リモートロギングの Syslog プロトコルをサポートするようになりました。Syslog ハンドラーを有効にすると、すべてのログイベントがリモート Syslog サーバーに送信されます。
詳細は、ロギングの設定 を参照してください。
1.6.31.2. ログハンドラーのさまざまなログレベル
console
、file
、または syslog
など、利用可能なすべてのログハンドラーのログレベルを指定できるようになりました。このよりきめ細かいアプローチにより、特定のニーズに合わせてアプリケーション全体のロギングを制御できるようになります。
詳細は、ロギングの設定 を参照してください。
1.6.32. cache
オプションがすべてランタイムに指定可能になる
ランタイムに cache
、cache-stack
、cache-config-file
オプションを指定できるようになりました。この変更により、ビルドフェーズを実行し、これらのオプションを使用してイメージを再構築する必要がなくなります。
詳細は、ランタイムでのキャッシュオプションの指定 を参照してください。
1.6.33. 高可用性マルチサイトデプロイメントの改善
Red Hat build of Keycloak 26 では、推奨される高可用性マルチサイトアーキテクチャーが大幅に改善されました。主な改善点は次のとおりです。
- Red Hat build of Keycloak デプロイメントでは、両方のサイトで同時にユーザー要求を処理できるようになりました。
- 障害が発生した場合にサイト間のレプリケーションを更新するには、サイト間の接続をアクティブに監視する必要があります。
- ロードバランサーのブループリントは、AWS Global Accelerator を使用するように更新されました。これにより、クライアントによる DNS キャッシュによって発生するフェイルオーバー時間の延長を回避できます。
- アーキテクチャーの要件としてユーザーセッションが永続化されました。その結果、Red Hat build of Keycloak または Data Grid のアップグレードでもユーザーセッションは保持されます。
実装の詳細は、高可用性のマルチサイトデプロイメント を参照してください。
1.6.34. getExp
メソッドが SingleUseObjectKeyModel
に追加される
AccessToken
、IDToken
、および JsonWebToken
から非推奨のメソッドが削除された結果、有効期限値に関連するメソッド名との一貫性を保つために SingleUseObjectKeyModel
も変更されました。
詳細は、SingleUseObjectKeyModel を参照してください。
1.6.35. PostgreSQL 16 のサポート
PostgreSQL 16 にサポート対象およびテスト済みのデータベースが追加される
1.6.36. Infinispan Marshalling から Infinispan Protostream に変更
マーシャリングは、Java オブジェクトをバイトに変換し、Red Hat build of Keycloak サーバー間でネットワーク経由で送信するプロセスです。Red Hat build of Keycloak 26 では、マーシャリング形式が JBoss Marshalling から Infinispan Protostream に変更されます。
JBoss Marshalling と Infinispan Protostream は相互に互換性がないため、誤って使用するとデータが損失する可能性があります。したがって、このバージョンにアップグレードすると、すべてのキャッシュがクリアされます。
Infinispan Protostream は、下位互換性と上位互換性の利点を持つ プロトコルバッファー (proto 3) に基づいています。
1.6.37. Keycloak CR の変更
1.6.37.1. Keycloak CR は、標準のスケジューリングオプションをサポートしています。
Keycloak CR は、Keycloak Pod のスケジュールを制御するためのファーストクラスプロパティーを公開するようになりました。スケジューリングスタンザは、オプションの標準 Kubernetes アフィニティー、toleration、トポロジースプレッド制約、および優先度クラス名を公開して、サーバー Pod のスケジューリングと配置を微調整します。
詳細は、スケジュール設定 を参照してください。
1.6.37.2. KeycloakRealmImport CR はプレースホルダーの置換をサポートする
KeycloakRealmImport CR は、spec.placeholders
を公開し、インポート時にプレースホルダーを置き換えるための環境変数を作成します。
詳細は、レルムのインポート を参照してください。
1.6.38. 管理者のブートストラップとリカバリー
以前のリリースでは、すべての管理ユーザーがロックアウトされたときに、Red Hat build of Keycloak インスタンスへのアクセスを回復するプロセスは困難でした。ただし、Red Hat build of Keycloak では、一時的な管理者アカウントをブートストラップし、失われた管理者アクセスを回復するための新しい方法が提供されるようになりました。
これで、特定のオプションを指定して start
または start-dev
コマンドを実行し、一時的な管理者アカウントを作成できるようになりました。また、新しい専用コマンドが導入され、ユーザーは管理者アクセスをすぐに取得し直すことができます。
その結果、環境変数 KEYCLOAK_ADMIN
および KEYCLOAK_ADMIN_PASSWORD
は非推奨になりました。代わりに、KC_BOOTSTRAP_ADMIN_USERNAME
および KC_BOOTSTRAP_ADMIN_PASSWORD
を使用する必要があります。これらも一般的なオプションなので、--bootstrap-admin-username=admin
のように CLI またはその他の設定ソース経由で指定できます。
詳細は、一時管理者アカウント を参照してください。
1.6.39. OpenTelemetry Tracing のプレビュー機能
OpenTelemetry Tracing の基礎となる Quarkus サポートが Red Hat build of Keycloak に公開され、アプリケーショントレースを取得して監視性を向上させることができます。この機能には、パフォーマンスのボトルネックを特定し、アプリケーション障害の原因を特定し、分散システムを通じて要求をトレースする機能が含まれます。
詳細は、トレースの有効化 を参照してください。
1.6.40. DPoP の改善
DPoP (OAuth 2.0 Demonstrating Proof-of-Possession) プレビュー機能が改善されました。DPoP は現在、すべての付与タイプでサポートされています。以前のリリースでは、この機能は authorization_code
付与タイプに対してのみサポートされていました。UserInfo エンドポイントでは DPoP トークンタイプもサポートされています。
1.6.41. ECDH-ES 暗号鍵管理アルゴリズムのサポートが追加される
現在、Red Hat build of Keycloak では、クライアントの暗号鍵管理アルゴリズムとして ECDH-ES、ECDH-ES+A128KW、ECDH-ES+A192KW、または ECDH-ES+A256KW を設定できます。Elliptic Curve Diffie-Hellman Ephemeral Static (ECDH-ES) 仕様による鍵合意では、JWT に epk
、apu
、apv
という 3 つの新しいヘッダーパラメーターが導入されています。現在、Red Hat build of Keycloak 実装は、必須の epk
のみを管理し、他の 2 つ (オプション) はヘッダーに追加されません。これらのアルゴリズムの詳細は JSON Web Algorithms (JWA) を参照してください。
また、レルムキーを生成するための新しいキープロバイダー ecdh-generated
が利用可能になり、Java KeyStore プロバイダーに ECDH アルゴリズムのサポートが追加されました。
1.6.42. 再起動後も取り消されたアクセストークンが保持される
このリリースでは、埋め込みキャッシュを使用する場合、取り消されたアクセストークンはデータベースに書き込まれ、クラスターが再起動されたときにデフォルトで再ロードされます。
詳細は、削除されたアクセストークンの保持 を参照してください。
1.6.43. クライアントポリシーのクライアント属性条件
client-attribute に基づく条件がクライアントポリシーに追加されました。この条件を使用して、特定のクライアント属性に特定の値を持つクライアントを指定できます。クライアントポリシーのドキュメントに記載されているように、この条件を評価するときは AND 条件または OR 条件のいずれかを使用します。
1.6.44. ECDH-ES 暗号鍵管理アルゴリズムのサポートが追加される
現在、Red Hat build of Keycloak では、クライアントの暗号鍵管理アルゴリズムとして ECDH-ES、ECDH-ES+A128KW、ECDH-ES+A192KW、または ECDH-ES+A256KW を設定できます。Elliptic Curve Diffie-Hellman Ephemeral Static (ECDH-ES) 仕様による鍵合意では、JWT に epk
、apu
、apv
という 3 つの新しいヘッダーパラメーターが導入されています。現在、Red Hat build of Keycloak 実装では必須の epk
のみが管理され、他の 2 つ (オプション) はヘッダーに追加されません。これらのアルゴリズムの詳細は、JSON Web Algorithms (JWA) を参照してください。
また、レルムキーを生成するための新しいキープロバイダー ecdh-generated
が利用可能になり、Java KeyStore プロバイダーに ECDH アルゴリズムのサポートが追加されました。
1.6.45. proxy-trusted-addresses
オプションが追加される
proxy-trusted-addresses
は proxy-headers
オプションが設定されていて、信頼できるプロキシーアドレスの許可リストを指定する場合に使用できます。特定のリクエストのプロキシーアドレスが信頼されていない場合、それぞれのプロキシーヘッダー値は使用されません。詳細は、信頼できるプロキシー を参照してください。
1.6.46. proxy-protocol-enabled
オプションが追加される
proxy-protocol-enabled
オプションは、プロキシーの背後からの要求を処理するときにサーバーが HA PROXY プロトコルを使用するかどうかを制御します。true に設定すると、返されるリモートアドレスは実際の接続クライアントからのアドレスになります。詳細は、プロキシープロトコル を参照してください。
1.6.47. 信頼とキーマテリアルを再読み込みするオプションが追加される
https-certificates-reload-period
オプションを設定すると、https-* オプションによって参照されるキーストア、トラストストア、および証明書ファイルの再読み込み期間を定義できます。再読み込みを無効にするには -1 を使用します。デフォルトは 1h (1 時間) です。詳細は、証明書とキーの再読み込み を参照してください。
1.6.48. キャッシュの最大カウントを設定するオプションが追加される
--cache-embedded-${CACHE_NAME}-max-count=
を設定すると、指定されたキャッシュ内のキャッシュエントリーの数の上限を定義できます。
1.6.49. https-trust-store-*
オプションの非推奨が解除に
コミュニティーからのフィードバックに基づいて、信頼できる証明書の粒度を向上させるために、https-trust-store-*
オプションを非推奨にしないことを決定しました。