シナリオ ListSessions

ユーザー名とパスワードで管理者ユーザーとしてログインし、レルム内のユーザーおよびクライアントセッションを一覧表示します。

すべてのシナリオの一覧については、シナリオの概要を参照してください。

このシナリオのステップ

  1. API 経由で管理者ユーザー名とパスワードでログインします。

  2. クライアントを検索し、そのクライアント下のすべてのユーザーセッションを一覧表示します。

  3. ユーザーを検索し、そのユーザー下のすべてのユーザーセッションを、それらに接続されているクライアントセッションとともに一覧表示します。

詳細については、ListSessions.scala のソースコードを参照してください。

このシナリオの特記事項

これらのシナリオは、組み込みの admin-cli クライアントを使用してレルム操作を実行するために、マスター管理者アカウントを使用しています。

この情報は、--admin-username および --admin-password オプションを使用してシナリオに指定されます。

サービスアカウントトークンの使用はこれらのシナリオでは無関係です。なぜなら、

  • 実際のリクエストセッション操作は、マスターレルムの管理者クレデンシャルを使用して実行されるため、

  • トークンにはすべてのレルム権限が含まれているため、非常に急速に大きくなり、ヘッダーの最大長をすぐに超えてしまう(431 Request Header Fields Too Large レスポンスにつながる)ためです。

ルックアップがどのように機能するかを確認するには、KeycloakScenarioBuilder.scalagetClientUUID および getUserUUID メソッドを参照してください。

基本シナリオ:単一ユーザーと単一クライアント

前提条件

  • Keycloak が実行されていること。

  • レルム、ユーザー、およびクライアントが CLI にリストされている値で存在すること。

  • このシナリオでは、クライアントにサービスアカウントロールを設定する必要はありません。

シナリオの実行

次のシナリオは、デフォルト設定で 30 秒間実行されます。

追加の CLI オプションについては、ベンチマークの設定を参照してください。

bin/kcb.sh \
--scenario=keycloak.scenario.admin.ListSessions \
--server-url=https://:8080/ \
--measurement=30 \
--username=user-0 \
--client-id=client-0 \
--realm-name=test-realm \
--admin-username=admin \
--admin-password=admin \
--log-http-on-failure

バリアント:ユーザー範囲とクライアント範囲

前提条件

さまざまな数のユーザーおよびクライアントからのセッションを一覧表示するには、追加の前提条件としてユーザーとクライアントのセットが必要です。

これは、ガイドのデータセットの生成セクションを使用して作成できます。

これは、その REST API または dataset-import.sh シェルスクリプトを使用して実行できます。

代替案 1:REST API を使用したユーザーとクライアントのセットアップ
curl 'https://keycloak-server/realms/master/dataset/create-realms?realm-name=realm-0&count=1&clients-per-realm=30&users-per-realm=200'
代替案 2:dataset-import.sh シェルスクリプトを使用したユーザーとクライアントのセットアップ
./dataset-import.sh -a create-realms -r 1 -c 5 -u 30

シナリオの実行

指定された範囲からユーザーとクライアントをスケールするには、以下のコマンド例を使用してください。

bin/kcb.sh \
--scenario=keycloak.scenario.admin.ListSessions \
--server-url=https://:8080/ \
--measurement=30 \
--users-per-realm=30 \
--clients-per-realm=5 \
--admin-username=admin \
--admin-password=admin \
--log-http-on-failure

エラーメッセージ

無効なユーザー名またはパスワード

これは、https://{keyloak-server}/realms/{realm}/account/ のアカウントコンソールでユーザーとしてログインしようとすることで手動でテストできます。これには、次の理由が考えられます。

  • 指定されたユーザー名のユーザーが存在しません。

    対策: コマンドラインまたはデフォルトとして指定されたユーザーが、指定されたレルムに存在することを確認してください。

  • ユーザーが異なるパスワードを持っています。

    対策: ユーザーが正しいパスワードを設定していることを確認してください。

  • --users-per-realm および --clients-per-realm によって提供される範囲が、データセットの生成モジュールからシードされたユーザーとクライアントよりも大きいです。

    対策: --users-per-realm および --clients-per-realm の範囲が、利用可能なユーザーとクライアントよりも小さいことを確認してください。

レルムが見つかりません

シナリオで使用されるレルムが存在しません。これには、次の理由が考えられます。

  • コマンドラインで指定されたレルムが Keycloak のセットアップと一致しないか、CLI でレルム範囲が指定された場合、レルムの 1 つが存在しません。

    対策: Keycloak インスタンスにログインして、CLI が Keycloak 構成と一致するかどうかを確認してください。

  • レルムを指定するために CLI オプションが使用されなかったため、シナリオは存在しない realm-0 を使用します。

    対策: Keycloak インスタンスに realm-0 レルムを作成するか、CLI オプションを使用して存在するレルムを指定してください。