51.4. 使用 Ansible 启用 AD 用户来管理 IdM
您可以使用 ansible-freeipa
idoverrideuser
和 group
模块从可信 AD 域中为活动目录(AD)用户创建一个用户 ID 覆盖,并授予该用户与 IdM 用户相同的权限。该流程使用 Default Trust View
ID 视图的示例,其中将 ad_user@AD.EXAMPLE.COM ID 覆盖添加到第一个 playbook 任务中。在下一个 playbook 任务中 ,ad_user@AD.EXAMPLE.COM ID 覆盖作为成员添加到 IdM admins
组中。因此,AD 管理员可以管理 IdM,而无需有两个不同的帐户和密码。
先决条件
您已配置了 Ansible 控制节点以满足以下要求:
- 您在使用 Ansible 版本 2.15 或更高版本。
-
已安装
freeipa.ansible_freeipa
集合。 - 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。
-
示例假定 secret.yml Ansible vault 存储了您的
ipaadmin_password
,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
-
清单文件中的
ipaserver
主机被配置为信任控制器或信任代理。 -
目标节点(这是执行
freeipa.ansible_freeipa
模块的节点)是作为 IdM 客户端、服务器或副本的 IdM 域的一部分。
流程
在 Ansible 控制节点上,使用任务创建一个 enable-ad-admin-to-administer-idm.yml playbook,将 ad_user@ad.example.com 用户覆盖添加到 Default Trust View 中:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在示例中:
- ad_user@ad.example.com 是 AD 用户的用户 ID 覆盖,存储在已建立信任的 AD 域中。
在同一 playbook 中使用另一个 playbook 任务,将 AD 管理员用户 ID 覆盖添加到
admins
组中:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在示例中:
-
admins
是您要添加 ad_user@ad.example.com ID 覆盖的默认 IdM POSIX 组的名称。此组成员具有全部的管理员特权。
-
- 保存该文件。
运行 Ansible playbook。指定 playbook 文件、存储保护 secret.yml 文件的密码,以及清单文件:
ansible-playbook --vault-password-file=password_file -v -i inventory enable-ad-admin-to-administer-idm.yml
$ ansible-playbook --vault-password-file=password_file -v -i inventory enable-ad-admin-to-administer-idm.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
以 AD Administrator 身份登录到 IdM 客户端:
ssh ad_user@ad.example.com@client.idm.example.com
$ ssh ad_user@ad.example.com@client.idm.example.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证您是否已获得了有效的票据授予票据(TGT):
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 IdM 中验证您的
admin
权限:Copy to Clipboard Copied! Toggle word wrap Toggle overflow