18.10. 用户操作
创建用户
				在 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 或 电子邮件 来过滤用户。
			
例如:
kcadm.sh get users -r demorealm -q q=email:google.com kcadm.sh get users -r demorealm -q q=username:testuser
$ kcadm.sh get users -r demorealm -q q=email:google.com
$ kcadm.sh get users -r demorealm -q q=username:testuser
					过滤不使用完全匹配。这个示例将 username 属性的值与 *testuser* 模式匹配。
				
				对于客户端、组和用户,您可以通过指定更复杂的 q 查询参数来过滤多个属性。您可以使用 -q q="field1:value1 field2:value2" 等内容。Red Hat build of 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
此命令为用户设置临时密码。目标用户在下次登录时更改密码。
				您可以使用  属性来指定用户。
			id 
				您可以在从用来获取特定用户( 如用户/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选项列出您可以添加到用户的 realm 角色。例如:
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选项)和客户端指定目标用户,通过 clientId 属性(--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选项列出您可以添加到用户的 realm 角色。例如:
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 
为用户添加 realm 角色
				使用 add-roles 命令向用户添加 realm 角色。
			
				使用以下示例将用户角色添加到用户 testuser : 
			
kcadm.sh add-roles --uusername testuser --rolename user -r demorealm
$ kcadm.sh add-roles --uusername testuser --rolename user -r demorealm
从用户中删除 realm 角色
				使用 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 命令向用户添加客户端角色。
			
				使用以下示例,将客户端 realm-management 上定义的两个角色、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 命令从用户中删除客户端角色。
			
使用以下示例删除 realm-management 客户端中定义的两个角色:
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,如 users/ID/logout。
			
				使用 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