Menu Close

7.2. 为智能卡验证配置 IdM 客户端

这部分描述了如何为智能卡身份验证配置 IdM 客户端。这个过程需要运行在每个 IdM 系统、客户端或服务器上,您希望在使用智能卡进行身份验证时连接到这些系统。例如,若要启用从主机 A 到主机 B 的 ssh 连接,需要在主机 B 上运行脚本。

作为管理员,运行这个流程来使用如下方法启用智能卡身份验证

对于向 IdM Web UI 进行身份验证,不需要此流程。向 IdM Web UI 进行身份验证涉及两个主机,它们都不必是 IdM 客户端:

  • 机器可能位于运行浏览器的 IdM 域之外
  • 运行 httpd 的 IdM 服务器

以下流程假设您在 IdM 客户端,而不是 IdM 服务器上配置智能卡身份验证。因此,您需要两台计算机:生成配置脚本的 IdM 服务器,以及运行脚本的 IdM 客户端。

先决条件

  • 为智能卡验证配置了您的 IdM 服务器,如 为智能卡验证配置 IdM 服务器 所述。
  • 有对 IdM 服务器和 IdM 客户端的 root 访问权限。
  • 您有访问 root CA 证书及其任何子 CA 证书的权限。
  • 您使用 --mkhomedir 选项安装了 IdM 客户端,以确保远程用户可以成功登录。如果您没有创建主目录,则默认的登录位置为 root。

步骤

  1. 在 IdM 服务器上,使用管理员权限通过 ipa-advise 生成配置脚本:

    [root@server SmartCard]# kinit admin
    [root@server SmartCard]# ipa-advise config-client-for-smart-card-auth > config-client-for-smart-card-auth.sh

    config-client-for-smart-card-auth.sh 脚本执行以下操作:

    • 它配置智能卡守护进程。
    • 它设置系统范围信任存储。
    • 它将系统安全服务守护进程(SSSD)配置为允许智能卡登录到桌面。
  2. 从 IdM 服务器中,将脚本复制到 IdM 客户端机器中选择的目录中:

    [root@server SmartCard]# scp config-client-for-smart-card-auth.sh root@client.idm.example.com:/root/SmartCard/
    Password:
    config-client-for-smart-card-auth.sh        100%   2419       3.5MB/s   00:00
  3. 为了方便起见,将 IdM 服务器上的 PEM 格式的 CA 证书文件复制到 IdM 客户端机器上与在上一步中所使用的相同的目录中:

    [root@server SmartCard]# scp {smartcard_ca.pem,ca.crt} root@client.idm.example.com:/root/SmartCard/
    Password:
    smartcard_ca.pem                    100%   1237     9.6KB/s   00:00
    ca.crt                              100%   2514    19.6KB/s   00:00
  4. 在客户端机器上执行脚本,将包含 CA 证书的 PEM 文件添加为参数:

    [root@client SmartCard]# kinit admin
    [root@client SmartCard]# chmod +x config-client-for-smart-card-auth.sh
    [root@client SmartCard]# ./config-client-for-smart-card-auth.sh smartcard_ca.pem ca.crt
    Ticket cache:KEYRING:persistent:0:0
    Default principal: admin@IDM.EXAMPLE.COM
    [...]
    Systemwide CA database updated.
    The ipa-certupdate command was successful
    注意

    在任何子 CA 证书前,确保将根 CA 的证书添加为参数,并且 CA 或子 CA 证书还没有过期。

现在为智能卡验证配置了客户端。