搜索

18.9. 用户操作

download PDF

创建用户

在用户 端点上运行 create 命令,以创建新用户。

例如:

$ kcadm.sh create users -r demorealm -s username=testuser -s enabled=true

列出用户

使用用户端点 列出用户。目标用户下次登录时必须更改其密码。

例如:

$ kcadm.sh get users -r demorealm --offset 0 --limit 1000

您可以根据 用户名firstNamelastNameemail 来过滤用户。

例如:

$ kcadm.sh get users -r demorealm -q email=google.com
$ kcadm.sh get users -r demorealm -q username=testuser
注意

过滤不使用完全匹配。这个示例根据 *testuser* 模式匹配 username 属性的值。

您可以通过指定多个 -q 选项来过滤多个属性。Red Hat Single Sign-On 返回符合所有属性条件的用户。

获取特定用户

使用用户 ID 来编写端点 URI,如 用户/USER_ID

例如:

$ 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"]'
  • Windows:
c:\> kcadm update users/0ba7a3fd-6fd8-48cd-a60b-2e8fd82d56e2 -r demorealm -s "requiredActions=[\"VERIFY_EMAIL\",\"UPDATE_PROFILE\",\"CONFIGURE_TOTP\",\"UPDATE_PASSWORD\"]"

删除用户

使用您用来获得特定用户的相同端点 URI 的 delete 命令。

例如:

$ 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

这个命令为用户设置临时密码。目标用户下次登录时必须更改密码。

您可以使用 --userid 使用 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

n 参数确保 Red Hat Single Sign-On 执行 PUT 命令,而不在 PUT 命令前面执行 GET 命令。这是必要的,因为 reset-password 端点不支持 GET

列出分配给用户的、可用和有效的域角色

您可以使用 get-roles 命令列出用户的已分配、可用和有效的域角色。

  1. 根据用户名或 ID 指定目标用户,以列出用户的 分配 域角色。

    例如:

    $ kcadm.sh get-roles -r demorealm --uusername testuser
  2. 使用 --effective 选项列出 有效的 域角色。

    例如:

    $ kcadm.sh get-roles -r demorealm --uusername testuser --effective
  3. 使用 --available 选项列出您可以添加到用户的 realm 角色。

    例如:

    $ kcadm.sh get-roles -r demorealm --uusername testuser --available

列出分配给用户的、可用和有效的客户端角色

使用 get-roles 命令,列出用户的已分配、可用且有效的客户端角色。

  1. 根据用户名(--uusername 选项)或 ID (--uid 选项)和客户端指定目标用户,使用 clientId 属性(--cclientid 选项)或 ID (--cid 选项)来列出 已为用户分配 的客户端角色。

    例如:

    $ kcadm.sh get-roles -r demorealm --uusername testuser --cclientid realm-management
  2. 使用 --effective 选项列出 有效的 域角色。

    例如:

    $ kcadm.sh get-roles -r demorealm --uusername testuser --cclientid realm-management --effective
  3. 使用 --available 选项列出您可以添加到用户的 realm 角色。

    例如:

    $ kcadm.sh get-roles -r demorealm --uusername testuser --cclientid realm-management --available

将 realm 角色添加到用户

使用 add-roles 命令,将 realm 角色添加到用户。

使用以下示例将用户角色添加到用户 testuser 中:

$ kcadm.sh add-roles --uusername testuser --rolename user -r demorealm

从用户中删除域角色

使用 remove-roles 命令,从用户中删除域角色。

使用以下示例从用户 testuser 中删除用户角色:

$ 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

从用户中删除客户端角色

使用 remove-roles 命令,从用户中删除客户端角色。

使用以下示例删除域管理客户端中定义的两个角色:

$ kcadm.sh remove-roles -r demorealm --uusername testuser --cclientid realm-management --rolename create-client --rolename view-users

列出用户会话

  1. 确定用户的 ID、
  2. 使用 ID 来编写端点 URI,如 users/ID/sessions
  3. 使用 get 命令检索用户会话的列表。

    例如:

    $kcadm get users/6da5ab89-3397-4205-afaa-e201ff638f9e/sessions

从特定会话中注销用户

  1. 如前面所述确定会话的 ID。
  2. 使用会话的 ID 来编写端点 URI,如 sessions/ID
  3. 使用 delete 命令使会话无效。

    例如:

    $ kcadm.sh delete sessions/d0eaa7cc-8c5d-489d-811a-69d3c4ec84d1

从所有会话注销用户

使用用户的 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
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.