2.3. 永続ユーザーセッション
新機能 persistent-user-sessions
は、オンラインユーザーセッションおよびオンラインクライアントセッションをデータベースに保存します。この変更により、Red Hat ビルドの Keycloak のすべてのインスタンスが再起動またはアップグレードされている場合でも、ユーザーはログインを継続できます。
以前のバージョンの Red Hat build of Keycloak は、オフラインユーザーおよびオフラインクライアントセッションのみをデータベースに保存していました。この動作は、Red Hat build of Keycloak の以前のバージョンと同じです。
このバージョンに移行すると、既存のオンラインユーザーセッションとオンラインクライアントセッションはすべてクリアされ、ユーザーがログアウトされます。オフラインのユーザーセッションとオフラインのクライアントセッションは影響を受けません。
2.3.1. 永続ユーザーセッションの有効化
Red Hat build of Keycloak 26 では、すべてのユーザーセッションはデフォルトでデータベースに永続化されます。機能を無効にすると、この動作を以前の状態に戻すことができます。分散キャッシュの設定 ガイドの Volatile ユーザーセッション 手順を使用します。
永続セッションを有効にすると、オンラインユーザーセッション、オフラインユーザーセッション、オンラインクライアントセッションとオフラインクライアントセッションのインメモリーキャッシュは、デフォルトでノードごとに 10000 エントリーに制限されます。これにより、大規模なインストールの場合の Keycloak の全体的なメモリー使用量が削減されます。メモリーからエビクトされた項目は、必要に応じてデータベースからオンデマンドでロードされます。この機能を有効にすると、メモリー使用量が減少し、ログイン、ログアウト、および更新トークン要求ごとにデータベースの使用量が増加することが予想されます。
Red Hat ビルドの Keycloak マルチサイト設定で外部 Data Grid にキャッシュサイズを設定するには、Deploy Data Grid for HA with the Data Grid Operator を参照してください。
この機能を有効にすると、以前オフラインセッションの上書きに使用された時間がインメモリーに使用されているため、spi-user-sessions-infinispan-offline-session-cache-entry-lifespan-override
オプションを指定すると、spi-user-sessions-infinispan-offline-client-session-cache-entry-lifespan-override
のオプションを利用できなくなりました。
2.3.2. 既存ユーザーをサインアウトする
persistent-user-sessions
が有効な場合にレルムのすべてのオンラインユーザーセッションをサインアウトするには、以下の手順を実行します。
- 管理コンソールへのログイン
- メニューエントリーの Sessions を選択します。
- アクション Sign out all active sessions を選択します。
2.3.3. セッションキャッシュのサイズの制限
データベースはユーザーセッションの信頼できるソースであるため、セッションキャッシュのサイズを制限してメモリー使用量を減らすことができます。デフォルトの conf/cache-ispn.xml
ファイルを使用する場合、ユーザーおよびクライアントセッションを保存するキャッシュは、デフォルトで 10000 セッションのみとエントリーごとに 1 所有者のみを保存するように設定されています。
cache-embedded-sessions-max-count
オプション、cache-embedded-client-sessions-max-count
、cache-embedded-offline-sessions-max-count
、cache-embedded-offline-client-sessions-max-count
オプションを使用して、キャッシュのサイズを更新します。
更新されたリソース要件の詳細は、CPU およびメモリーリソースのサイジング に関する概念 を参照してください。