Ubuntu

針對 samba 4 DC 的密鑰表身份驗證:獲取初始憑據時在 Kerberos 數據庫中找不到客戶端

  • September 2, 2015

我按照Samba AD DC HOWTO在 ubuntu 14.04 上設置了一個 samba 4 活動目錄。原則上一切正常,但我堅持使用 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 使用使用者名工作
  • myserver.mycompany.com 由 dc 上的 nslookup 和網路伺服器返回
  • myserver 已加入域並列在

CN=Computers,DC=mycompany,DC=com 中

  • 沒有重複的 SPN

我創建了服務帳戶/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/myserver.mycompany.com@MYCOMPANY.COM (des-cbc-crc)
  1 http/myserver.mycompany.com@MYCOMPANY.COM (des-cbc-md5)
  1 http/myserver.mycompany.com@MYCOMPANY.COM (arcfour-hmac)
  1 http/myserver@MYCOMPANY.COM (des-cbc-crc)
  1 http/myserver@MYCOMPANY.COM (des-cbc-md5)
  1 http/myserver@MYCOMPANY.COM (arcfour-hmac)

我迷路了,在Google研究了幾個小時,不知道如何解決/修復“在 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

終於我明白了!

samba-tool spn add ...

不會在目錄中按預期(重新)命名 UPN。我通過與 MS ADS 條目的比較找到了它。所以解決方法是在發出 exportkeytab 命令之前手動更改值:

  • 使用 ldap-tool(我使用 Apache Directory Studio)打開服務使用者條目,然後
  • 找到剛剛創建的使用者編輯“userPrincipalName”以反映 servicePrincipleName + REALM(在我的情況下為 http/myserver.mycompany.com@MYCOMPANY.COM
  • 導出密鑰表,一切都按預期工作

在目標機器上

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

工作沒有任何抱怨!希望這可以幫助其他嘗試使用 Samba4 設置 SSO …

引用自:https://serverfault.com/questions/606189