2.4. 使用 Ansible 为智能卡验证配置 IdM 客户端
按照以下步骤,使用 ansible-freeipa
ipasmartcard_client
模块配置特定的 RHEL 身份管理(IdM)客户端,以允许 IdM 用户使用智能卡进行身份验证。运行这个流程为使用以下任一方法访问 IdM 的用户启用智能卡验证:
ssh
协议详情请查看 使用智能卡验证配置 SSH 访问。
- 控制台登录
- GNOME 显示管理器(GDM)
-
su
命令
对于向 IdM Web UI 进行身份验证,不需要此流程。向 IdM Web UI 进行身份验证涉及两个主机,它们都不必是 IdM 客户端:
- 其上运行浏览器的机器。机器可以在 IdM 域之外。
-
其上运行
httpd
的 IdM 服务器。
先决条件
- 您的 IdM 服务器已被配置为进行智能卡验证,如 使用 Ansible 为智能卡验证配置 IdM 服务器 中所述。
- 有对 IdM 服务器和 IdM 客户端的 root 访问权限。
- 您有根 CA 证书、IdM CA 证书以及所有中间 CA 证书。
您已配置了 Ansible 控制节点以满足以下要求:
- 您在使用 Ansible 版本 2.15 或更高版本。
-
已安装
freeipa.ansible_freeipa
集合。 - 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。
-
示例假定 secret.yml Ansible vault 存储了您的
ipaadmin_password
,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
-
目标节点(这是执行
freeipa.ansible_freeipa
模块的节点)是作为 IdM 客户端、服务器或副本的 IdM 域的一部分。
流程
如果您的 CA 证书存储在不同格式(如
DER
)的文件中,请将其转换为PEM
格式:openssl x509 -in <filename>.der -inform DER -out <filename>.pem -outform PEM
# openssl x509 -in <filename>.der -inform DER -out <filename>.pem -outform PEM
Copy to Clipboard Copied! Toggle word wrap Toggle overflow IdM CA 证书采用
PEM
格式,位于/etc/ipa/ca.crt
文件中。可选:使用
openssl x509
工具查看PEM
格式的文件内容,以检查Issuer
和Subject
值是否正确:openssl x509 -noout -text -in root-ca.pem | more
# openssl x509 -noout -text -in root-ca.pem | more
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Ansible 控制节点上,导航到 ~/MyPlaybooks/ 目录:
cd ~/MyPlaybooks/
$ cd ~/MyPlaybooks/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建专用于 CA 证书的子目录:
mkdir SmartCard/
$ mkdir SmartCard/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为方便起见,将所有必需的证书复制到 ~/MyPlaybooks/SmartCard/ 目录中,例如:
cp /tmp/root-ca.pem ~/MyPlaybooks/SmartCard/ cp /tmp/intermediate-ca.pem ~/MyPlaybooks/SmartCard/ cp /etc/ipa/ca.crt ~/MyPlaybooks/SmartCard/ipa-ca.crt
# cp /tmp/root-ca.pem ~/MyPlaybooks/SmartCard/ # cp /tmp/intermediate-ca.pem ~/MyPlaybooks/SmartCard/ # cp /etc/ipa/ca.crt ~/MyPlaybooks/SmartCard/ipa-ca.crt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Ansible 清单文件中指定以下内容:
- 要为智能卡验证配置的 IdM 客户端。
- IdM 管理员密码。
CA 证书的路径按以下顺序:
- 根 CA 证书文件
- 中间 CA 证书文件
- IdM CA 证书文件
文件类似如下:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下内容创建
install-smartcard-clients.yml
playbook:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 保存该文件。
运行 Ansible playbook。指定 playbook 和清单文件:
ansible-playbook --vault-password-file=password_file -v -i inventory install-smartcard-clients.yml
$ ansible-playbook --vault-password-file=password_file -v -i inventory install-smartcard-clients.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ipasmartcard_client
Ansible 角色执行以下操作:- 它配置智能卡守护进程。
- 它设置系统范围的信任存储。
- 它将系统安全服务守护进程(SSSD)配置为允许用户使用其用户名和密码或者智能卡进行身份验证。有关智能卡验证的 SSSD 配置集选项的详情,请参考 RHEL 中的智能卡验证选项。
清单文件的 ipaclients 部分中列出的客户端现在配置为进行智能卡验证。
如果您使用 --mkhomedir
选项安装了 IdM 客户端,则远程用户将能够登录到其主目录。否则,默认登录位置是目录结构的根目录,/
。