第 9 章 使用带有智能卡的 PKINIT,以活动目录用户身份进行身份验证
活动目录(AD)用户可以使用智能卡对加入到 IdM 的桌面客户端系统进行身份验证,并获取 Kerberos 票据授予票据(TGT)。这些票据可用于客户端的单点登录(SSO)身份验证。
先决条件
- IdM 服务器被配置为智能卡验证。如需更多信息,请参阅 为智能卡验证配置 IdM 服务器,或使用 Ansible 为智能卡验证配置 IdM 服务器。
- 为智能卡验证配置了客户端。如需更多信息,请参阅 为智能卡验证配置 IdM 客户端,或使用 Ansible 为智能卡验证配置 IdM 客户端。
-
已安装
krb5-pkinit软件包。 - AD 服务器被配置为信任签发智能卡证书的证书颁发机构(CA)。将 CA 证书导入到 NTAuth 存储(请参阅 Microsoft 支持),并将 CA 添加为可信 CA。详情请查看 Active Directory 文档。
步骤
将 Kerberos 客户端配置为信任签发智能卡证书的 CA:
-
在 IdM 客户端上,打开
/etc/krb5.conf文件。 在文件中添加以下行:
[realms] AD.DOMAIN.COM = { pkinit_eku_checking = kpServerAuth pkinit_kdc_hostname = adserver.ad.domain.com }
-
在 IdM 客户端上,打开
如果用户证书不包含证书撤销列表(CRL)分布点扩展,请将 AD 配置为忽略撤销错误:
在纯文本文件中保存以下 REG 格式的内容,并将其导入到 Windows registry:
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应用程序手动设置值。- 重启 Windows 系统以应用更改。
在身份管理客户端中使用
kinit工具进行身份验证。使用用户名和域名指定 Active Directory 用户:$ kinit -X X509_user_identity='PKCS11:opensc-pkcs11.so' ad_user@AD.DOMAIN.COMX选项指定opensc-pkcs11.so 模块作为 pre-authentication 属性。