基于角色的访问控制(RBAC)
管理员分权:权限、特权、角色三层,自带角色的能力范围,如何给帮助台一个只能重置密码的账号,以及 admins 组与 RBAC 的关系。
本页说明 IPA Server 下的 Role-based access control 页面组。RBAC 决定管理员能修改目录里的什么,与 HBAC(用户能登录哪台主机)无关。不受许可模块限制。
| 层 | 粒度 | 示例 |
|---|---|---|
| 权限(permission) | 一条 ACI:对哪类对象的哪些属性做什么操作 | System: Change User password |
| 特权(privilege) | 一组权限 | Modify Users and Reset passwords |
| 角色(role) | 一组特权,授予用户、组、主机、服务 | helpdesk |
界面管理角色和特权两层。权限只能在命令行管理(ipa permission-find),自带 300 多条,一般不修改。

自带角色
| 角色 | 能力 |
|---|---|
| helpdesk | 修改用户属性、重置密码、修改组成员 |
| User Administrator | 创建、删除、修改用户与组 |
| IT Specialist | 管理主机、主机组、服务、自动挂载、netgroup |
| IT Security Specialist | 管理 HBAC、Sudo、SELinux 映射、密码策略 |
| Security Architect | 管理 RBAC 本身、复制、信任、证书 |
| Enrollment Administrator | 为主机入域,ipa-client-install 使用的账号 |
| Subordinate ID Selfservice User | 用户自行申请从属 ID |
admins 组不经过 RBAC,它是目录里的超级组,可以修改任何内容。授予管理员权限时优先使用角色,不把用户加入 admins。
角色详情

Privileges 页签是该角色包含的特权;Members 是持有该角色的用户、组、主机、服务。给帮助台一个只能重置密码的账号:把帮助台的组加入 helpdesk 角色的成员,不动 admins。
主机和服务也能作为角色成员。把 Enrollment Administrator 授予一台跳板机的 host/ 主体后,该机器上的自动化用自己的 keytab 为新机器入域,不需要保存管理员密码。
特权

自带 38 条,按对象类型分(DNS Administrators、Certificate Administrators、Automount Administrators 等)。自定义特权是挑选一组权限,再放进角色。常见需求是只读审计员:创建只含 System: Read * 类权限的特权(ipa permission-find --type=user --right=read)。
自助与委派
用户修改自己的部分属性(密码、电话、SSH 公钥)由自助服务权限放行,不经过角色。委派规则(delegation)允许一组用户修改另一组用户的指定属性。两者只在命令行管理:ipa selfservice-find、ipa delegation-find。
边界
| 事项 | 说明 |
|---|---|
| 生效时间 | 角色成员变更立即生效,不需要重新登录管理台。RBAC 在服务端每次请求时判定,已缓存的票据不受影响 |
| 控制范围 | 只覆盖 IPA API 和 LDAP 写操作。文件系统、sudo、AD 侧权限各自独立 |
| 删除特权 | 不会从角色里自动移除引用,角色只是少一项 |