17.9. 用户操作
创建用户
在 users 端点上运行 create 命令,以创建新用户。
例如:
kcadm.sh create users -r demorealm -s username=testuser -s enabled=true
$ kcadm.sh create users -r demorealm -s username=testuser -s enabled=true
列出用户
使用 users 端点列出用户。目标用户在下次登录时必须更改其密码。
例如:
kcadm.sh get users -r demorealm --offset 0 --limit 1000
$ kcadm.sh get users -r demorealm --offset 0 --limit 1000
您可以根据 用户名、firstName、lastName 或 email 过滤用户。
例如:
kcadm.sh get users -r demorealm -q email=google.com kcadm.sh get users -r demorealm -q username=testuser
$ kcadm.sh get users -r demorealm -q email=google.com
$ kcadm.sh get users -r demorealm -q username=testuser
过滤不使用完全匹配。本例与 username 属性的值与 *testuser* 模式匹配。
您可以通过指定多个 -q 选项来过滤多个属性。红帽构建的 Keycloak 返回仅与所有属性条件匹配的用户。
获取特定用户
使用用户 ID 编写端点 URI,如 users/USER_ID。
例如:
kcadm.sh get users/0ba7a3fd-6fd8-48cd-a60b-2e8fd82d56e2 -r demorealm
$ kcadm.sh get users/0ba7a3fd-6fd8-48cd-a60b-2e8fd82d56e2 -r demorealm
更新用户
使用带有您用来获取特定用户的同一端点 URI 的 update 命令。
例如:
linux:
kcadm.sh update users/0ba7a3fd-6fd8-48cd-a60b-2e8fd82d56e2 -r demorealm -s 'requiredActions=["VERIFY_EMAIL","UPDATE_PROFILE","CONFIGURE_TOTP","UPDATE_PASSWORD"]'
$ kcadm.sh update users/0ba7a3fd-6fd8-48cd-a60b-2e8fd82d56e2 -r demorealm -s 'requiredActions=["VERIFY_EMAIL","UPDATE_PROFILE","CONFIGURE_TOTP","UPDATE_PASSWORD"]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow Windows:
kcadm update users/0ba7a3fd-6fd8-48cd-a60b-2e8fd82d56e2 -r demorealm -s "requiredActions=[\"VERIFY_EMAIL\",\"UPDATE_PROFILE\",\"CONFIGURE_TOTP\",\"UPDATE_PASSWORD\"]"
c:\> kcadm update users/0ba7a3fd-6fd8-48cd-a60b-2e8fd82d56e2 -r demorealm -s "requiredActions=[\"VERIFY_EMAIL\",\"UPDATE_PROFILE\",\"CONFIGURE_TOTP\",\"UPDATE_PASSWORD\"]"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
删除用户
使用 delete 命令和您用来获取特定用户的同一端点 URI。
例如:
kcadm.sh delete users/0ba7a3fd-6fd8-48cd-a60b-2e8fd82d56e2 -r demorealm
$ kcadm.sh delete users/0ba7a3fd-6fd8-48cd-a60b-2e8fd82d56e2 -r demorealm
重置用户的密码
使用专用的 set-password 命令重置用户的密码。
例如:
kcadm.sh set-password -r demorealm --username testuser --new-password NEWPASSWORD --temporary
$ kcadm.sh set-password -r demorealm --username testuser --new-password NEWPASSWORD --temporary
此命令为用户设置临时密码。目标用户在下次登录时必须更改密码。
您可以使用 --userid 使用 id 属性来指定用户。
您可以通过在由您用来获取特定用户(如 users/USER_ID/reset-password )组成的端点上的 update 命令实现相同的结果。
例如:
kcadm.sh update users/0ba7a3fd-6fd8-48cd-a60b-2e8fd82d56e2/reset-password -r demorealm -s type=password -s value=NEWPASSWORD -s temporary=true -n
$ kcadm.sh update users/0ba7a3fd-6fd8-48cd-a60b-2e8fd82d56e2/reset-password -r demorealm -s type=password -s value=NEWPASSWORD -s temporary=true -n
n 参数可确保红帽构建的 Keycloak 在 PUT 命令之前执行 PUT 命令,而无需执行 GET 命令。这是必要的,因为 reset-password 端点不支持 GET。
列出用户的已分配、可用和有效的域角色
您可以使用 get-roles 命令列出分配给用户的、可用和有效的域角色。
根据用户名或 ID 指定目标用户,以列出 用户分配的域 角色。
例如:
kcadm.sh get-roles -r demorealm --uusername testuser
$ kcadm.sh get-roles -r demorealm --uusername testuserCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
-- effective选项列出有效的域角色。例如:
kcadm.sh get-roles -r demorealm --uusername testuser --effective
$ kcadm.sh get-roles -r demorealm --uusername testuser --effectiveCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
--available选项列出您可以添加到用户的域角色。例如:
kcadm.sh get-roles -r demorealm --uusername testuser --available
$ kcadm.sh get-roles -r demorealm --uusername testuser --availableCopy to Clipboard Copied! Toggle word wrap Toggle overflow
列出分配给用户的、可用和有效的客户端角色
使用 get-roles 命令列出分配给用户的、可用和有效的客户端角色。
根据用户名(
--uusername选项)或 ID (--uid选项)和客户端(--cclientid选项)或 ID (--cid选项)指定目标用户,以列出用户 分配的 客户端角色。例如:
kcadm.sh get-roles -r demorealm --uusername testuser --cclientid realm-management
$ kcadm.sh get-roles -r demorealm --uusername testuser --cclientid realm-managementCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
-- effective选项列出有效的域角色。例如:
kcadm.sh get-roles -r demorealm --uusername testuser --cclientid realm-management --effective
$ kcadm.sh get-roles -r demorealm --uusername testuser --cclientid realm-management --effectiveCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
--available选项列出您可以添加到用户的域角色。例如:
kcadm.sh get-roles -r demorealm --uusername testuser --cclientid realm-management --available
$ kcadm.sh get-roles -r demorealm --uusername testuser --cclientid realm-management --availableCopy to Clipboard Copied! Toggle word wrap Toggle overflow
向用户添加域角色
使用 add-roles 命令,向用户添加 realm 角色。
使用以下示例将用户角色添加到用户 testuser 中:
kcadm.sh add-roles --uusername testuser --rolename user -r demorealm
$ kcadm.sh add-roles --uusername testuser --rolename user -r demorealm
从用户中删除域角色
使用 remove-roles 命令从用户中删除 realm 角色。
使用以下示例从用户 testuser 中删除用户角色:
kcadm.sh remove-roles --uusername testuser --rolename user -r demorealm
$ kcadm.sh remove-roles --uusername testuser --rolename user -r demorealm
向用户添加客户端角色
使用 add-roles 命令,向用户添加客户端角色。
使用以下示例,将客户端域管理 中定义的两个角色( create-client 角色和 view-users 角色)添加到用户 testuser。
kcadm.sh add-roles -r demorealm --uusername testuser --cclientid realm-management --rolename create-client --rolename view-users
$ kcadm.sh add-roles -r demorealm --uusername testuser --cclientid realm-management --rolename create-client --rolename view-users
从用户中删除客户端角色
使用 remove-roles 命令从用户中删除客户端角色。
使用以下示例删除域管理客户端中定义的两个角色:
kcadm.sh remove-roles -r demorealm --uusername testuser --cclientid realm-management --rolename create-client --rolename view-users
$ kcadm.sh remove-roles -r demorealm --uusername testuser --cclientid realm-management --rolename create-client --rolename view-users
列出用户的会话
- 确定用户的 ID,
-
使用 ID 编写端点 URI,如
users/ID/sessions。 使用
get命令检索用户会话的列表。例如:
kcadm.sh get users/6da5ab89-3397-4205-afaa-e201ff638f9e/sessions -r demorealm
$ kcadm.sh get users/6da5ab89-3397-4205-afaa-e201ff638f9e/sessions -r demorealmCopy to Clipboard Copied! Toggle word wrap Toggle overflow
从特定会话注销用户
- 如前面所述,确定会话的 ID。
-
使用会话的 ID 来编写端点 URI,如
sessions/ID。 使用
delete命令使会话无效。例如:
kcadm.sh delete sessions/d0eaa7cc-8c5d-489d-811a-69d3c4ec84d1 -r demorealm
$ kcadm.sh delete sessions/d0eaa7cc-8c5d-489d-811a-69d3c4ec84d1 -r demorealmCopy to Clipboard Copied! Toggle word wrap Toggle overflow
从所有会话注销用户
使用用户的 ID 来构造端点 URI,如用户/ID/注销。
使用 create 命令在该端点 URI 上执行 POST。
例如:
kcadm.sh create users/6da5ab89-3397-4205-afaa-e201ff638f9e/logout -r demorealm -s realm=demorealm -s user=6da5ab89-3397-4205-afaa-e201ff638f9e
$ kcadm.sh create users/6da5ab89-3397-4205-afaa-e201ff638f9e/logout -r demorealm -s realm=demorealm -s user=6da5ab89-3397-4205-afaa-e201ff638f9e