23.5. 身份管理中的 PKINIT 智能卡身份验证


身份管理用户可以在加入身份管理的桌面客户端系统中使用智能卡进行身份验证,并自动获得 Kerberos 票据授权票据(TGT)。用户可以使用该票据从客户端进行进一步的单点登录(SSO)身份验证。

23.5.1. 为 PKINIT 身份验证准备身份管理客户端

作为身份管理管理员,请在您希望用户进行身份验证的客户端上执行以下步骤:
  1. 在服务器上,创建一个 shell 脚本来配置客户端。
    1. 使用 ipa-advise config-client-for-smart-card-auth 命令,并将其输出保存到文件中:
      # ipa-advise config-client-for-smart-card-auth > client_smart_card_script.sh
    2. 打开 脚本文件,并检查其内容。
    3. 使用 chmod 实用程序为文件添加执行权限:
      # chmod +x client_smart_card_script.sh
  2. 将 脚本复制到客户端并运行它。使用签署智能卡证书的证书颁发机构(CA)添加 PEM 文件的路径:
    # ./client_smart_card_script.sh CA_cert.pem
  3. 确保已安装 krb5-pkinit 软件包。
另外,如果外部证书颁发机构(CA)在智能卡上签名证书,请将智能卡 CA 添加为可信 CA:
  1. 在 Identity Management 服务器中安装 CA 证书:
    # ipa-cacert-manage -n "SmartCard CA" -t CT,C,C install ca.pem
    # ipa-certupdate
    在所有副本和客户端上也重复 ipa-certupdate
  2. 重启 HTTP 服务器:
    # systemctl restart httpd
    在所有副本上重复 systemctl restart httpd
注意
SSSD 可让管理员使用 certificate_verification 参数调整证书验证过程,例如,如果证书中定义的在线证书状态协议(OCSP)服务器无法从客户端访问。如需更多信息,请参阅 sssd.conf(5) man page。

23.5.2. 作为身份管理用户:在身份管理客户端上使用 PKINIT 进行身份验证

在身份管理客户端中使用 kinit 工具进行身份验证:
$ kinit -X X509_user_identity='PKCS11:opensc-pkcs11.so' idm_user
X 选项将 opensc-pkcs11.so 模块指定为预身份验证属性。详情请查看 kinit(1) man page。

23.5.3. 作为 Active Directory 用户:在身份管理客户端上使用 PKINIT 进行身份验证

先决条件

以管理员身份,配置环境以支持 Active Directory 用户的 PKINIT 身份验证:
  • 配置 Active Directory 服务器,以信任签发智能卡证书的证书颁发机构(CA)。在 NTAuth 存储中导入 CA(请参阅 Microsoft 支持),并将 CA 添加为可信 CA。详情请参阅 Active Directory 文档。
  • 将 Kerberos 客户端配置为信任发布智能卡证书的 CA:
    1. 在身份管理客户端上,打开 /etc/krb5.conf 文件。
    2. 在该文件中添加以下行:
      [libdefaults]
      [... file truncated ...]
       pkinit_eku_checking = kpServerAuth
       pkinit_kdc_hostname = adserver.ad.domain.com
  • 如果用户证书不包含证书撤销列表(CRL)分发点扩展,请配置 Active Directory 以忽略撤销错误:
    1. 将以下 REG 格式的内容保存到纯文本文件中,然后双击该文件将其导入到 Windows 注册表:
      Windows Registry Editor Version 5.00
      
      [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Kdc]
      "UseCachedCRLOnlyAndIgnoreRevocationUnknownErrors"=dword:00000001
      
      [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA\Kerberos\Parameters]
      "UseCachedCRLOnlyAndIgnoreRevocationUnknownErrors"=dword:00000001
      或者,使用 regedit.exe 应用程序手动设置值。
    2. 重启 Windows 系统以应用更改。

步骤

在身份管理客户端上使用 kinit 工具进行身份验证。使用用户名和域名指定 Active Directory 用户:
$ kinit -X X509_user_identity='PKCS11:opensc-pkcs11.so' ad_user@AD.DOMAIN.COM
X 选项将 opensc-pkcs11.so 模块指定为预身份验证属性。详情请查看 kinit(1) man page。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.