Назад | Перейти на главную страницу

keytab auth против samba 4 DC: клиент не найден в базе данных Kerberos при получении начальных учетных данных

Я установил активный каталог samba 4 в ubuntu 14.04, следуя инструкциям Samba AD DC HOWTO. В принципе, все работает хорошо, но я застрял в том, чтобы запустить аутентификацию Kerberos с использованием SPN для веб-приложений. Когда я пытаюсь бежать

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

Я всегда получаю

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

Что я уже проверил:

Я создал сервисную учетную запись / 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/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) и
  • найдите только что созданного пользователя Edit «userPrincipalName», чтобы отразить servicePrincipleName + REALM (в моем случае http/myserver.mycompany.com@MYCOMPANY.COM)
  • экспортировать keytab и все работает как положено

на целевой машине

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

работает без нареканий! Надеюсь, это поможет другим, пытающимся настроить SSO с Samba4 ...

Первоначально я получил ошибку ниже в среде Redhat Linux.

kinit: клиент не найден в базе данных Kerberos при получении начальных учетных данных

Пока я пытался с помощью указанной ниже учетной записи службы зарегистрировать с помощью F_KEY

$ kinit  HOST/domainname.no@HOSTNAME.NET

Мне было предложено ввести пароль, и это сработало!

Я могу создать файл кэша учетных данных krb5cc_0 в папке / tmp на сервере.

Я могу перечислить все подробности о временном TGT, используя команду klist.

  1. Действительный запуск
  2. Истекает
  3. Руководитель службы