Ubuntu
針對 samba 4 DC 的密鑰表身份驗證:獲取初始憑據時在 Kerberos 數據庫中找不到客戶端
我按照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 …