第 9 章 使用带有智能卡的 PKINIT,以活动目录用户身份进行身份验证
活动目录(AD)用户可以使用智能卡向加入到 IdM 的桌面客户端系统进行身份验证,并从客户端获取用于单点登录(SSO)身份验证的 Kerberos 票据授予票据(TGT)。这个过程适用于需要智能卡验证的 AD 用户帐户,这防止它们使用基于密码的登录。
您不能使用这些指令来访问 IdM 资源,应为其 Kerberos 服务有 pkinit
身份验证指示器要求。这是因为进程从 Active Directory Kerberos 分发中心(AD KDC),而不是从 IdM KDC 获取 TGT 。因此,TGT 不包含必要的身份验证指示器,IdM 服务将拒绝您的访问。
要为 IdM 用户启用 PKINIT 身份验证来访问 IdM 服务,请参阅 管理 Kerberos 票据策略。
先决条件
- IdM 服务器被配置为智能卡验证。如需更多信息,请参阅 为智能卡验证配置 IdM 服务器 或 使用 Ansible 为智能卡验证配置 IdM 服务器。
- 已为智能卡验证配置了客户端。如需更多信息,请参阅 为智能卡验证配置 IdM 客户端 或 使用 Ansible 为智能卡验证配置 IdM 客户端。
-
krb5-pkinit
软件包已安装。 - AD 服务器被配置为信任签发智能卡证书的证书颁发机构(CA)。将 CA 证书导入到 NTAuth 存储(请参阅 Microsoft 支持),并将 CA 添加为可信 CA。详情请查看活动目录文档。
流程
将 Kerberos 客户端配置为信任签发智能卡证书的 CA:
-
在 IdM 客户端上,打开
/etc/krb5.conf
文件。 在文件中添加以下行:
[realms] AD.DOMAIN.COM = { pkinit_eku_checking = kpServerAuth pkinit_kdc_hostname = adserver.ad.domain.com }
[realms] AD.DOMAIN.COM = { pkinit_eku_checking = kpServerAuth pkinit_kdc_hostname = adserver.ad.domain.com }
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
在 IdM 客户端上,打开
如果用户证书不包含证书撤销列表(CRL)分布点扩展,请将 AD 配置为忽略撤销错误:
将以下 REG 格式的内容保存在一个纯文本文件中,并将其导入到 Windows 注册表:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 或者,您可以使用
regedit.exe
应用程序手动设置值。- 重启 Windows 系统以应用更改。
在身份管理客户端上使用
kinit
工具进行身份验证。使用用户名和域名指定活动目录用户:kinit -X X509_user_identity='PKCS11:opensc-pkcs11.so' ad_user@AD.DOMAIN.COM
$ kinit -X X509_user_identity='PKCS11:opensc-pkcs11.so' ad_user@AD.DOMAIN.COM
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -X
选项将opensc-pkcs11.so 模块
指定为预身份验证属性。