针对 samba 4 DC 的 keytab 身份验证:获取初始凭据时未在 Kerberos 数据库中找到客户端

针对 samba 4 DC 的 keytab 身份验证:获取初始凭据时未在 Kerberos 数据库中找到客户端

我在 ubuntu 14.04 上设置了 samba 4 活动目录,如下所示Samba AD DC 操作指南原则上一切正常,但我无法使用 SPN 为 Web 应用程序运行 Kerberos 身份验证。当我尝试运行

kinit -k -t keytabfile http/myserver.mycompany.com 

我总是得到一个

kinit: Client not found in Kerberos database while getting initial credentials

我目前已检查的内容:

  • DNS 正在正向和反向工作,返回 FQN
  • kinit 使用用户名
  • dc 和 Web 服务器上的 nslookup 返回 myserver.mycompany.com
  • myserver 已加入域并列在
    CN=Computers,DC=mycompany,DC=com中
  • 没有重复的 SPN

我创建了服务帐户/SPN/keytabs,如下所示:

samba-tool user create $ADS_USER $ADS_PW --userou=$USER_OU
samba-tool user setexpiry --noexpiry $ADS_USER

samba-tool spn add ${SERVICE_TYPE}/${SERVICE_HOST}.${MY_DOMAIN} $ADS_USER
samba-tool spn add ${SERVICE_TYPE}/${SERVICE_HOST} $ADS_USER

samba-tool spn list $ADS_USER
rm -f $MY_KEYTAB
samba-tool domain exportkeytab $MY_KEYTAB --principal=${SERVICE_TYPE}/${SERVICE_HOST}.${MY_DOMAIN}
samba-tool domain exportkeytab $MY_KEYTAB --principal=${SERVICE_TYPE}/${SERVICE_HOST}

运行 klist -k -e $MY_KEYTAB 时一切看起来都很好:

root@myhost:~# klist -ke ./test.keytab
Keytab name: FILE:./test.keytab
KVNO Principal
---- --------------------------------------------------------------------------
   1 http/[email protected] (des-cbc-crc)
   1 http/[email protected] (des-cbc-md5)
   1 http/[email protected] (arcfour-hmac)
   1 http/[email protected] (des-cbc-crc)
   1 http/[email protected] (des-cbc-md5)
   1 http/[email protected] (arcfour-hmac)

我迷路了,在谷歌上搜索了几个小时,不知道如何解决/修复“Kerberos 数据库中未找到客户端”错误。欢迎任何提示!

谢谢

客户端上的“/etc/krb5.conf”

[libdefaults]
    debug = true
        default_realm = MYCOMPANY.COM
        dns_lookup_realm = false
        dns_lookup_kdc = false
        default_tkt_enctypes = rc4-hmac
        default_tgs_enctypes = rc4-hmac
[realms]
        MYCOMPANY.COM = {
                kdc = dc01.mycompany.com
                admin_server = dc01.mycompany.com
                kpasswd_server = dc01.mycompany.com

                #ktpasswd_server = dc01.mycompany.com
                #admin_server = dc01.mycompany.com
        }
[domain_realm]
        .mycompany.com = MYCOMPANY.COM
        mycompany.com = MYCOMPANY.COM

在直流服务器上 /etc/samba/smb.conf

[global]
        debug level = 1
        syslog = 1
        max log size = 0

        workgroup = MYCOMPANY
        realm = MYCOMPANY.COM
        netbios name = DC01
        server role = active directory domain controller
        server string = MYCOMPANY domain controller
        server role check:inhibit = yes
        dns forwarder = 192.168.22.1
        idmap_ldb:use rfc2307 = yes

答案1

最后我得到了它!

samba-tool spn add ...

未按预期在目录中(重新)命名 UPN。我通过与 MS ADS 条目进行比较发现了这一点。因此,解决方法是在发出 exportkeytab 命令之前手动更改值:

  • 使用 ldap 工具(我使用了 Apache Directory Studio)打开服务用户条目并
  • 找到刚刚创建的用户编辑“userPrincipalName”以反映servicePrincipleName + REALM(在我的情况下为http /[电子邮件保护]
  • 导出密钥表,一切按预期进行

在目标机器上

kinit -k -t http/myserver.mycompany.com

运行正常,没有任何问题!希望这能帮助其他尝试使用 Samba4 设置 SSO 的人...

答案2

最初我在 Redhat Linux 环境下出现以下错误。

kinit:获取初始凭证时未在 Kerberos 数据库中找到客户端

当我尝试使用以下服务帐户注册 F_KEY 时

$ kinit  HOST/[email protected]

它提示我提供密码,然后它就成功了!

我能够在服务器的 /tmp 文件夹下生成“krb5cc_0”凭证缓存文件。

我能够使用命令“klist”列出有关临时 TGT 的所有详细信息。

  1. 有效起始
  2. 过期
  3. 服务主体

相关内容