情境列表連線階段
以管理員使用者身分,使用使用者名稱和密碼登入,並列出領域內的使用者和客戶端連線階段。
請參閱情境概觀以取得所有情境的清單。
此情境的步驟
-
透過 API 使用管理員使用者名稱和密碼登入。
-
查詢客戶端並列出該客戶端下的所有使用者連線階段。
-
查詢使用者並列出該使用者下的所有使用者連線階段,以及與其連線的客戶端連線階段。
詳細資訊請參閱原始程式碼:ListSessions.scala。
關於此情境的詳細資訊
這些情境使用主管理員帳戶,透過內建的 admin-cli
客戶端執行領域操作。
此資訊透過選項 --admin-username
和 --admin-password
指定給情境。
在這些情境中,使用服務帳戶權杖無關緊要,因為
-
實際的列表連線階段操作是使用主領域的管理員憑證執行
-
由於權杖包含所有領域權限,因此它會快速增長,並會快速超過標頭的最大長度(導致
431 Request Header Fields Too Large
回應)。
若要查看查詢如何運作,請參閱 KeycloakScenarioBuilder.scala 中的 getClientUUID 和 getUserUUID 方法。
基本情境:單一使用者和單一客戶端
執行情境
以下情境以預設設定執行 30 秒。
請參閱設定效能基準以取得其他 CLI 選項。
bin/kcb.sh \
--scenario=keycloak.scenario.admin.ListSessions \
--server-url=https://127.0.0.1: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
shell 腳本執行。
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
shell 腳本設定使用者和客戶端./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 上指定了領域範圍,則其中一個領域不存在。
補救措施:透過登入 Keycloak 實例來檢查 CLI 是否與 Keycloak 設定相符。
-
沒有使用 CLI 選項來指定領域,因此情境使用不存在的
realm-0
。補救措施:在 Keycloak 實例中建立一個領域
realm-0
,或使用 CLI 選項來指定一個存在的領域。
-