11.5. 允许非管理员用户管理用户条目
默认情况下,只有
admin 用户被允许管理用户生命周期,并禁用或启用用户帐户。要允许另一个非管理员用户执行此操作,创建一个新角色,在此角色中添加相关权限,并将非管理员用户分配到该角色。
默认情况下,IdM 包括以下与管理用户帐户相关的权限:
- 修改用户和重置密码
- 此特权包括修改各种用户属性的权限。
- User Administrators
- 此特权包括添加活动用户、激活非活动用户、删除用户、修改用户属性和其他权限的权限。
- 阶段用户置备
- 此特权包括添加暂存用户的权限。
- 暂存用户管理员
- 此权限包括执行多个生命周期操作的权限,如添加暂存用户或在生命周期状态之间移动用户。但是,它不包括将用户移到 active 状态的权限。
有关定义角色、权限和权限的详情请参考 第 10.4 节 “定义基于角色的访问控制”。
允许不同的用户执行不同的用户管理操作
与管理用户帐户相关的不同特权可以添加到不同的用户。例如,您可以通过以下方式分隔员工帐户条目和激活的权限:
- 将一个用户配置为 阶段用户管理员,允许将将来的员工作为暂存用户添加到 IdM,但不允许激活它们。
- 将另一个用户配置为 安全管理员,允许在员工凭证在就业第一天得到验证后激活暂存用户。
要允许用户执行某些用户管理操作,请创建一个具有所需特权或特权的新角色,并将该用户分配到该角色。
例 11.1. 允许非管理员用户添加阶段用户
本例演示了如何创建仅允许添加新阶段用户但不允许执行任何其他阶段用户管理操作的用户。
- 以
admin用户身份登录,或允许管理基于角色的访问控制的另一个用户身份登录。$ kinit admin - 创建新的自定义角色来管理添加阶段用户。
- 创建
系统置备角色。$ ipa role-add --desc "Responsible for provisioning stage users" "System Provisioning" -------------------------------- Added role "System Provisioning" -------------------------------- Role name: System Provisioning Description: Responsible for provisioning stage users - 将
Stage User Provisioning特权添加到该角色。此特权提供添加暂存用户的功能。$ ipa role-add-privilege "System Provisioning" --privileges="Stage User Provisioning" Role name: System Provisioning Description: Responsible for provisioning stage users Privileges: Stage User Provisioning ---------------------------- Number of privileges added 1 ----------------------------
- 为非管理员用户授予添加暂存用户的权限。
- 如果非 admin 用户尚不存在,请创建一个新用户。在本例中,该用户名为
stage_user_admin。$ ipa user-add stage_user_admin --password First name: first_name Last name: last_name Password: Enter password again to verify: ... - 将
stage_user_admin用户分配给System Provisioning角色。$ ipa role-add-member "System Provisioning" --users=stage_user_admin Role name: System Provisioning Description: Responsible for provisioning stage users Member users: stage_user_admin Privileges: Stage User Provisioning ------------------------- Number of members added 1 ------------------------- - 为确保正确配置了
System Provisioning角色,您可以使用 ipa role-show 命令显示角色设置。$ ipa role-show "System Provisioning" -------------- 1 role matched -------------- Role name: System provisioning Description: Responsible for provisioning stage users Member users: stage_user_admin Privileges: Stage User Provisioning ---------------------------- Number of entries returned 1 ----------------------------
- 以
stage_user_admin用户身份测试添加新的 stage 用户。- 以
stage_user_admin身份登录。请注意,如果您在前面的步骤中以一个新用户身份创建了stage_user_admin,IdM 会要求您更改admin设置的初始密码。$ kinit stage_user_admin Password for stage_user_admin@EXAMPLE.COM: Password expired. You must change it now. Enter new password: Enter it again: - 要确保您的
admin的 Kerberos 票据已被stage_user_admin的 Kerberos 票据替代,您可以使用klist工具。$ klist Ticket cache: KEYRING:persistent:0:krb_ccache_xIlCQDW Default principal: stage_user_admin@EXAMPLE.COM Valid starting Expires Service principal 02/25/2016 11:42:20 02/26/2016 11:42:20 krbtgt/EXAMPLE.COM - 添加新 stage 用户。
$ ipa stageuser-add stage_user First name: first_name Last name: last_name ipa: ERROR: stage_user: stage user not found注意预期在添加暂存用户后 IdM 报告的错误。stage_user_admin只允许添加 stage 用户,而不可以显示有关他们的信息。因此,IdM 不会显示新添加的stage_user设置摘要。
stage_user_admin 用户不允许显示 stage 用户的信息。因此,当以 stage_user _ admin 身份登录时,尝试显示有关新 stage_user 用户 的信息会失败:
$ ipa stageuser-show stage_user
ipa: ERROR: stage_user: stage user not found
要显示
stage_user 的信息,您可以 以管理员身份登录 :
$ kinit admin
Password for admin@EXAMPLE.COM:
$ ipa stageuser-show stage_user
User login: stage_user
First name: Stage
Last name: User
...