9.5. 使用 Ansible 设置信任协议
您可以使用 Ansible playbook 在身份管理(IdM)和活动目录(AD)之间建立单向信任协议。您可以配置三种类型的信任协议:
- One-way trust 默认选项。单向信任使活动目录(AD)用户和组可以访问 IdM 中的资源,但反之则不行。IdM 域信任 AD 林,但 AD 林不信任 IdM 域。
Two-way trust— 双向信任使 AD 用户和组可以访问 IdM 中的资源。
您必须为像 Microsoft SQL Server 这样的解决方案配置双向信任,该解决方案希望 Kerberos 协议的
S4U2Self
和S4U2Proxy
Microsoft 扩展能够跨信任边界工作。RHEL IdM 主机上的应用可能会向 Active Directory 域控制器请求有关 AD 用户的S4U2Self
或S4U2Proxy
信息,双向信任提供了这一特性。请注意,这个双向信任功能并不允许 IdM 用户登录到 Windows 系统,IdM 中的双向信任并不为用户授予与 AD 中的单向信任解决方案相比的任何额外权利。
-
要创建双向信任,请在 playbook 任务中添加以下变量:
two_way: true
-
要创建双向信任,请在 playbook 任务中添加以下变量:
External trust - 不同林中 IdM 和 AD 域之间的信任关系。虽然林信任总是需要在 IdM 和 Active Directory 林的根域之间建立信任,但可以从 IdM 到林中的域建立外部信任只有由于管理或组织方面的原因而无法在林根域之间建立林信任时,才推荐这么做。
-
要创建外部信任,请在 playbook 任务中添加以下变量:
external: true
-
要创建外部信任,请在 playbook 任务中添加以下变量:
先决条件
- Windows 管理员的用户名和密码。
-
IdM
admin
密码。 - 您已 为信任准备了 IdM 服务器。
您已配置了 Ansible 控制节点以满足以下要求:
- 您在使用 Ansible 版本 2.15 或更高版本。
-
您已安装了
freeipa.ansible_freeipa
集合。 - 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。
-
示例假定 secret.yml Ansible vault 存储了您的
ipaadmin_password
,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
-
目标节点(也就是在其上执行
freeipa.ansible_freeipa
模块的节点)作为 IdM 客户端、服务器或副本,是 IdM 域的一部分。
流程
进入您的 ~/MyPlaybooks/ 目录:
cd ~/MyPlaybooks/
$ cd ~/MyPlaybooks/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 根据您的用例选择以下场景之一:
要创建 ID 映射信任协议,其中 SSSD 会根据其 SID 自动为 AD 用户和组群生成 UID 和 GID,请创建一个带有以下内容的
add-trust.yml
playbook:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在示例中:
-
realm
定义 AD 领域名称字符串。 -
admin
定义 AD 域管理员字符串。 -
password
定义 AD 域管理员密码字符串。
-
要创建 POSIX 信任协议,其中 SSSD 会处理存储在 AD 中的 POSIX 属性,如
uidNumber
和gidNumber
,请创建一个包含以下内容的add-trust.yml
playbook:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要通过请求林根域中 AD 域控制器的详情来创建信任协议,其中 IdM 试图自动选择适当的范围类型、
ipa-ad-trust
或ipa-ad-trust-posix
,请创建一个带有以下内容的add-trust.yml
playbook:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
警告如果您在创建信任时没有指定 ID 范围类型,且 IdM 没有在 AD 林根域中检测到任何 POSIX 属性,则信任安装脚本会选择
Active Directory domain
ID 范围。如果 IdM 在林根域中检测到任何 POSIX 属性,则信任安装脚本会选择
带有 POSIX 属性的活动目录域
ID range,并假定已在 AD 中正确定义了 UID 和 GID。但是,如果 POSIX 属性没有在 AD 中正确设置,则您将无法解析 AD 用户。例如,如果需要访问 IdM 系统的用户和组不是林根域的一部分,而是位于林域的子域中,则安装脚本可能不会检测子 AD 域中定义的 POSIX 属性。在这种情况下,在建立信任时明确选择 POSIX ID 范围类型。
- 保存该文件。
运行 Ansible playbook。指定 playbook 文件、存储保护 secret.yml 文件的密码,以及清单文件:
ansible-playbook --vault-password-file=password_file -v -i inventory add-trust.yml
$ ansible-playbook --vault-password-file=password_file -v -i inventory add-trust.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow