シナリオ ListSessions
ユーザー名とパスワードで管理者ユーザーとしてログインし、レルム内のユーザーおよびクライアントセッションを一覧表示します。
すべてのシナリオの一覧については、シナリオの概要を参照してください。
このシナリオのステップ
-
API 経由で管理者ユーザー名とパスワードでログインします。
-
クライアントを検索し、そのクライアント下のすべてのユーザーセッションを一覧表示します。
-
ユーザーを検索し、そのユーザー下のすべてのユーザーセッションを、それらに接続されているクライアントセッションとともに一覧表示します。
詳細については、ListSessions.scala のソースコードを参照してください。
このシナリオの特記事項
これらのシナリオは、組み込みの admin-cli
クライアントを使用してレルム操作を実行するために、マスター管理者アカウントを使用しています。
この情報は、--admin-username
および --admin-password
オプションを使用してシナリオに指定されます。
サービスアカウントトークンの使用はこれらのシナリオでは無関係です。なぜなら、
-
実際のリクエストセッション操作は、マスターレルムの管理者クレデンシャルを使用して実行されるため、
-
トークンにはすべてのレルム権限が含まれているため、非常に急速に大きくなり、ヘッダーの最大長をすぐに超えてしまう(
431 Request Header Fields Too Large
レスポンスにつながる)ためです。
ルックアップがどのように機能するかを確認するには、KeycloakScenarioBuilder.scala の getClientUUID
および 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
シェルスクリプトを使用して実行できます。
curl 'https://keycloak-server/realms/master/dataset/create-realms?realm-name=realm-0&count=1&clients-per-realm=30&users-per-realm=200'
dataset-import.sh
シェルスクリプトを使用したユーザーとクライアントのセットアップ./dataset-import.sh -a create-realms -r 1 -c 5 -u 30
エラーメッセージ
- 無効なユーザー名またはパスワード
-
これは、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 オプションを使用して存在するレルムを指定してください。
-