keytab auth针对samba 4 DC:获取初始凭证时未在Kerberos数据库中find客户端

在Samba AD DC HOWTO之后,我在ubuntu 14.04上build立了一个samba 4活动目录。 原则上一切运作良好,但我坚持使用SPNs为Web应用程序运行Kerberos身份validation。 当我尝试跑步

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

我总是得到一个

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

到目前为止,我已经检查了什么:

  • DNS正在向前和向后返回FQN
  • kinit使用用户名
  • myserver.mycompany.com由dc和web服务器上的nslookup返回
  • myserver已经join域并被列入
    CN =电脑,DC = myCompany中,DC = COM
  • 没有dublicate SPNs

我创build了如下服务帐户/ SPNs / 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 

在dc服务器/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 

最后我得到了它!

 samba-tool spn add ... 

没有(重新)在目录中命名UPN。 我通过与MS ADS条目比较发现它。 因此,解决方法是在发出exportkeytab命令之前手动更改值:

  • 使用ldap工具(我使用Apache Directory Studio)和
  • find刚创build的用户编辑“userPrincipalName”,以反映servicePrincipleName + REALM(在我的情况下http / [email protected]
  • 导出keytab,一切按预期工作

在目标机器上

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

作品没有任何抱怨! 希望这可以帮助其他人尝试使用Samba4设置SSO …

最初我在Redhat Linux环境下得到了错误。

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

虽然我试着用F_KEY注册下面的服务帐户

 $ kinit HOST/[email protected] 

它促使我提供密码,它的工作!

我可以在服务器的/ tmp文件夹下生成'krb5cc_0'凭据caching文件。

我可以使用关于临时TGT的命令'klist'列出所有的细节。

  1. 有效开始
  2. 过期
  3. 服务负责人