4.5. 使用 IdM API 命令管理基于主机的访问控制
以下示例显示了如何使用 IdM API 命令管理基于主机的访问控制(HBAC)的常见场景。
使用 IdM API 命令管理 HBAC 的示例
- 创建 HBAC 规则
在本例中,您创建一个将处理 SSH 服务访问的基本规则。
api.Command.hbacrule_add("sshd_rule")
- 将用户添加到 HBAC 规则中
在本例中,您将用户
john
添加到sshd_rule
HBAC 规则中。api.Command.hbacrule_add_user("sshd_rule", user="john")
- 将组添加到 HBAC 规则中
在本例中,您将组
developers
添加到sshd_rule
HBAC 规则中。api.Command.hbacrule_add_user("sshd_rule", group="developers")
- 从 HBAC 规则中删除用户
在本例中,您从
sshd_rule
HBAC 规则中删除用户john
。api.Command.hbacrule_remove_user("sshd_rule", user="john")
- 注册新的目标 HBAC 服务
在将其附加到 HBAC 规则前,您必须注册一个目标服务。在本例中,您注册
chronyd
服务。api.Command.hbacsvc_add("chronyd")
- 将注册的服务附加到 HBAC 规则中
在本例中,您将
sshd
服务附加到sshd_rule
HBAC 规则中。默认情况下,该服务在 IPA 中注册,因此无需事先使用hbacsvc_add
进行注册。api.Command.hbacrule_add_service("sshd_rule", hbacsvc="sshd")
- 将主机添加到 HBAC 规则中
在本例中,您要
workstations
主机组添加到sshd_rule
HBAC 规则中。api.Command.hbacrule_add_host("sshd_rule", hostgroup="workstations")
- 测试 HBAC 规则
在本例中,您对
workstation.ipa.test
主机使用sshd_rule
HBAC 规则。它以来自用户john
的服务sshd
为目标。api.Command.hbactest(user="john", targethost="workstation.ipa.test", service="sshd", rules="sshd_rule")
- 启用 HBAC 规则
在本例中,您启用
sshd_rule
HBAC 规则。api.Command.hbacrule_enable("sshd_rule")
- 禁用 HBAC 规则
在本例中,您禁用
sshd_rule
HBAC 规则。api.Command.hbacrule_disable("sshd_rule")