23.3. 使用智能卡向身份管理客户端进行身份验证
作为身份管理服务器中具有多个角色帐户的身份管理用户,您可以使用智能卡验证加入到身份管理域的桌面客户端系统。这可让您将客户端系统用作所选角色。
有关支持的选项的基本概述,请参阅:
有关配置环境以启用身份验证的详情,请参考:
有关如何验证的详情请参考:
23.3.1. 身份管理客户端上支持的基于智能卡的身份验证选项
在使用身份管理客户端上的智能卡进行身份验证时,身份管理中的用户可以使用以下选项:
- 本地验证
- 本地验证包括以下身份验证:
- 文本控制台
- 图形控制台,如 Gnome Display Manager(GDM)
- 本地身份验证服务,如
su
或sudo
- 使用
ssh
进行远程身份验证 - 智能卡中的证书与受 PIN 保护的 SSH 私钥一起存储。
不支持使用其他服务(如 FTP)进行基于智能卡的验证。
23.3.2. 为智能卡身份验证准备身份管理客户端
作为身份管理管理员,执行以下步骤:
- 在服务器上,创建一个 shell 脚本来配置客户端。
- 使用 ipa-advise config-client-for-smart-card-auth 命令,并将其输出保存到文件中:
# ipa-advise config-client-for-smart-card-auth > client_smart_card_script.sh
- 打开 脚本文件,并检查其内容。
- 使用
chmod
实用程序为文件添加执行权限:# chmod +x client_smart_card_script.sh
- 将 脚本复制到客户端并运行它。使用签署智能卡证书的证书颁发机构(CA)添加 PEM 文件的路径:
# ./client_smart_card_script.sh CA_cert.pem
另外,如果外部证书颁发机构(CA)在智能卡上签名证书,请将智能卡 CA 添加为可信 CA:
- 在 Identity Management 服务器中安装 CA 证书:
# ipa-cacert-manage -n "SmartCard CA" -t CT,C,C install ca.pem # ipa-certupdate
在所有副本和客户端上也重复ipa-certupdate
。 - 重启 HTTP 服务器:
# systemctl restart httpd
在所有副本上重复 systemctl restart httpd。
注意
SSSD 可让管理员使用
certificate_verification
参数调整证书验证过程,例如,如果证书中定义的在线证书状态协议(OCSP)服务器无法从客户端访问。如需更多信息,请参阅 sssd.conf(5) man page。
23.3.3. 使用智能卡在身份管理客户端中进行身份验证,使用控制台登录
要以 Identity Management 用户身份进行身份验证,请输入用户名和 PIN。
- 从命令行登录时:
client login: idm_user PIN for PIV Card Holder pin (PIV_II) for user idm_user@idm.example.com:
- 使用 Gnome Desktop Manager(GDM)登录时,GDM 会在选择所需用户后提示您输入智能卡 PIN:
图 23.13. 在 Gnome Desktop Manager 中输入智能卡 PIN
要以 Active Directory 用户身份进行身份验证,请使用 NetBIOS 域名的格式输入用户名:
AD.EXAMPLE.COM\ad_user
or ad_user@AD.EXAMPLE.COM
.
如果身份验证失败,请参阅 第 A.4 节 “调查智能卡身份验证失败”。
23.3.4. 从本地系统向远程系统进行身份验证
在本地系统中执行以下步骤:
- 插入智能卡。
- 启动
ssh
,并使用-I
选项指定 PKCS the 库:- 作为身份管理用户:
$ ssh -I /usr/lib64/opensc-pkcs11.so -l idm_user server.idm.example.com Enter PIN for 'PIV_II (PIV Card Holder pin)': Last login: Thu Apr 6 12:49:32 2017 from 10.36.116.42
- 作为 Active Directory 用户:
$ ssh -I /usr/lib64/opensc-pkcs11.so -l ad_user@ad.example.com server.idm.example.com Enter PIN for 'PIV_II (PIV Card Holder pin)': Last login: Thu Apr 6 12:49:32 2017 from 10.36.116.42
- 可选。使用
id
实用程序检查您是否以预期用户身份登录。- 作为身份管理用户:
$ id uid=1928200001(idm_user) gid=1928200001(idm_user) groups=1928200001(idm_user) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
- 作为 Active Directory 用户:
$ id uid=1171201116(ad_user@ad.example.com) gid=1171201116(ad_user@ad.example.com) groups=1171201116(ad_user@ad.example.com),1171200513(domain users@ad.example.com) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
如果身份验证失败,请参阅 第 A.4 节 “调查智能卡身份验证失败”。
23.3.5. 其它资源
- 使用带有智能卡的
ssh
的身份验证不会在远程系统上获得票据授予票据(TGT)。要在远程系统上获取 TGT,管理员必须在本地系统上配置 Kerberos 并启用 Kerberos 委派。有关所需配置的示例,请查看 此 Kerberos 知识库条目。 - 有关使用 OpenSSH 的智能卡验证的详情,请参考 安全指南中的使用智能卡为 OpenSSH 提供凭证 。