11.5. 允许非管理员用户管理用户条目
默认情况下,只有
admin
用户被允许管理用户生命周期,并禁用或启用用户帐户。要允许另一个非管理员用户执行此操作,创建一个新角色,在此角色中添加相关权限,并将非管理员用户分配到该角色。
默认情况下,IdM 包括以下与管理用户帐户相关的权限:
- 修改用户和重置密码
- 此特权包括修改各种用户属性的权限。
- User Administrators
- 此特权包括添加活动用户、激活非活动用户、删除用户、修改用户属性和其他权限的权限。
- 阶段用户置备
- 此特权包括添加暂存用户的权限。
- 暂存用户管理员
- 此权限包括执行多个生命周期操作的权限,如添加暂存用户或在生命周期状态之间移动用户。但是,它不包括将用户移到 active 状态的权限。
有关定义角色、权限和权限的详情请参考 第 10.4 节 “定义基于角色的访问控制”。
允许不同的用户执行不同的用户管理操作
与管理用户帐户相关的不同特权可以添加到不同的用户。例如,您可以通过以下方式分隔员工帐户条目和激活的权限:
- 将一个用户配置为 阶段用户管理员,允许将将来的员工作为暂存用户添加到 IdM,但不允许激活它们。
- 将另一个用户配置为 安全管理员,允许在员工凭证在就业第一天得到验证后激活暂存用户。
要允许用户执行某些用户管理操作,请创建一个具有所需特权或特权的新角色,并将该用户分配到该角色。
例 11.1. 允许非管理员用户添加阶段用户
本例演示了如何创建仅允许添加新阶段用户但不允许执行任何其他阶段用户管理操作的用户。
- 以
admin
用户身份登录,或允许管理基于角色的访问控制的另一个用户身份登录。kinit admin
$ kinit admin
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 创建新的自定义角色来管理添加阶段用户。
- 创建
系统置备
角色。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 将
Stage User Provisioning
特权添加到该角色。此特权提供添加暂存用户的功能。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- 为非管理员用户授予添加暂存用户的权限。
- 如果非 admin 用户尚不存在,请创建一个新用户。在本例中,该用户名为
stage_user_admin
。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 将
stage_user_admin
用户分配给System Provisioning
角色。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 为确保正确配置了
System Provisioning
角色,您可以使用 ipa role-show 命令显示角色设置。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- 以
stage_user_admin
用户身份测试添加新的 stage 用户。- 以
stage_user_admin
身份登录。请注意,如果您在前面的步骤中以一个新用户身份创建了stage_user_admin
,IdM 会要求您更改admin
设置的初始密码。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 要确保您的
admin
的 Kerberos 票据已被stage_user_admin
的 Kerberos 票据替代,您可以使用klist
工具。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 添加新 stage 用户。
ipa stageuser-add stage_user
$ ipa stageuser-add stage_user First name: first_name Last name: last_name ipa: ERROR: stage_user: stage user not found
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意预期在添加暂存用户后 IdM 报告的错误。stage_user_admin
只允许添加 stage 用户,而不可以显示有关他们的信息。因此,IdM 不会显示新添加的stage_user
设置摘要。
stage_user_admin
用户不允许显示 stage 用户的信息。因此,当以 stage_user
_ admin 身份登录时,尝试显示有关新 stage_user 用户
的信息会失败:
ipa stageuser-show stage_user
$ ipa stageuser-show stage_user
ipa: ERROR: stage_user: stage user not found
要显示
stage_user
的信息,您可以 以管理员身份登录
: