Я настраиваю аутентификацию apache / SSO с AD с Kerberos. Мой http-сервер - это Debian Wheezy, а AD - это Windows Server 2012.
Я создал файлы keytabs на WS2012 с помощью kpass
команда для каждого типа шифрования, доступного на WS2012.
Когда я пытаюсь открыть сеанс с пользователем test@DOMAIN.COM
с участием kinit
, оно работает.
Когда я пытаюсь открыть сеанс с моим HTTP/web.domain.com@DOMAIN.COM
, Я получаю сообщение:
kvno HTTP/web.domain.com@DOMAIN.COM
kvno: KDC has no support for encryption type while getting credentials for HTTP/web.domain.com@DOMAIN.COM
Кроме того, когда я проверяю шифрование, используемое для test@DOMAIN.COM
, У меня есть:
root@SERVER:~# klist -e
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: test@DOMAIN.COM
Valid starting Expires Service principal
03/04/2015 12:48:21 03/04/2015 22:48:17 krbtgt/DOMAIN.COM@DOMAIN.COM
renew until 04/04/2015 12:48:21, Etype (skey, tkt): arcfour-hmac, arcfour-hmac
Я пытался настроить свой /etc/krb5.conf
с участием:
default_tgs_enctypes = arcfour-hmac-md5 des-cbc-crc des-cbc-md5
default_tkt_enctypes = arcfour-hmac-md5 des-cbc-crc des-cbc-md5
И используя файл keytab, зашифрованный с помощью arcfour-hmac
безуспешно.
Я не понимаю, как изменить тип шифрования, используемый для связи, почему он всегда хочет arcfour-hmac и почему, когда я даю ему шифрование arcfour-hmac, ничего не меняется ...
Как быть уверенным в том, что изменения /etc/krb5.conf эффективны, и как заставить работать создание тикетов Kerberos?
Типы шифрования, поддерживаемые контроллером домена Active Directory, перечислены в msDS-SupportedEncryptionTypes
атрибут объекта компьютера контроллера домена. При установке по умолчанию они обычно выглядят примерно так:
RC4_HMAC_MD5
AES128_CTS_HMAC_SHA1_96
AES256_CTS_HMAC_SHA1_96
Это битовая маска, которая работает до десятичного числа 28, поэтому это будет что-то вроде 00011100
.
Поэтому, когда вы спрашиваете, почему контроллеру домена «всегда нужен только ARC4-HMAC», это потому, что ваш клиент не имеет ни одного из двух других типов шифрования, общих с контроллером домена, поэтому они исключаются в процессе согласования.
(Примечание: RC4_HMAC_MD5 действительно является наихудшим и самым слабым из всех возможных типов шифрования, но иногда также необходимо поддерживать устаревшие сценарии и совместимость с продуктами сторонних производителей.)
Я просмотрел документацию, нашел пример чужого файла конфигурации и подумал, что это может быть полезно:
http://wiki.squid-cache.org/ConfigExamples/Authenticate/Kerberos
; for Windows 2008 with AES
default_tgs_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5
default_tkt_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5
permitted_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5
Обратите внимание, что, помимо поддержки лучших типов шифрования, они также указывают rc4-hmac
в их конфигурации, которая отличается от того, что у вас есть, arcfour-hmac-md5
. (Также не забывайте permitted_enctypes
строчку, которую я не увидел в вашем посте.)
Я не уверен на 100%, что это решит вашу проблему, так как сейчас я не могу это проверить, но, надеюсь, это поможет.
Это наиболее общая проблема при настройке Kerberos. Решите ее, выполнив следующие действия.
1) vi /var/kerberos/krb5kdc/kdc.conf
2) проверьте supported_enctypes
, используйте любые упомянутые там методы шифрования.
Надеюсь, это решит проблему.