使用智能卡进行 Kerberos 身份验证

使用智能卡进行 Kerberos 身份验证

我已经全新安装了 Fedora 34,并且正在尝试配置 kinit 以使用我的智能卡获取 kerberos 票证。我不想加入域(即 Windows AD)。

我已成功将其配置为允许我使用密码登录,但无法使其与我的智能卡一起使用。当我尝试时,它会提示我输入 PIN 码,然后提示我输入密码。

pkcs15-tool 列出了智能卡中的证书,它确实有多个证书。我不确定我的 krb5.conf 文件中是否选择了正确的文件(不太确定要查找什么)。

我已将 PEM 证书从域控制器复制到 /etc/ssl/certs/root,并从智能卡使用 CA。我还使用 certutil 将相同的证书复制到 /etc/pki/nssdb

这是我的 krb5.conf 文件

[libdefaults]
    pkinit_anchors = DIR:/etc/ssl/certs/root/
    pkinit_pool = DIR:/etc/ssl/certs/sub/
    #pkinit_cert_match = || <EKU>msScLogin,<KU>digitalSignature
    #pkinit_eku_checking = kpServerAuth
    pkinit_kdc_hostname = DC.DOMAIN.COM
    pkinit_identities = PKCS11:opensc-pkcs11.so:slotid=0:certid=01
    default_ccache_name = KEYRING:persistent:%{uid}
    default_realm = DC.DOMAIN.COM
    default_tgs_enctypes = arcfour-hmac-md5 des-cbc-crc des-cbc-md5
    default_tkt_enctypes = arcfour-hmac-md5 des-cbc-crc des-cbc-md5

[realms]
  DC.DOMAIN.COM = {
    kdc = DC.DOMAIN.COM:88
    admin_server = DC.DOMAIN.COM
    default_domain = DC.DOMAIN.COM
}

[domain_realm]
# .example.com = EXAMPLE.COM
# example.com = EXAMPLE.COM
.dc.domain.com = DC.DOMAIN.COM

我用来获取门票的命令

kinit -X 509_user_identity='PKCS11:opensc-pkcs11.so' [email protected]

如果我取出 -X 选项,我可以使用我的密码登录。我缺少什么?

编辑 - 还将证书添加到 /etc/pki/nssdb 编辑 2 - 我很确定我选择了正确的证书。我也在网上看到很多教程说要运行

modutil -add "OpenSC PKCS #11 Module" -libfile opensc-pkcs11.so -dbdir /etc/pki/nssdb

但是当我这样做时,我收到这个错误

ERROR: Failed to add module "OpenSC PKCS #11 Module". Probable cause : "Unknown PKCS #11 error.

相关内容