Хорошо, у меня все работает:
- Установите Kerberos 5 + apache 2 + mod_auth_kerb.
- В своей AD сгенерируйте таблицу ключей только с тем участником, который вы будете использовать для Apache,Я использую HTTP/apache.mydom.com@MYDOM.COM
- Поместите этот файл keytab на ваш сервер Apache и сделайте его доступным для чтения только для вашего пользователя Apache.
- Затем отредактируйте ваш Apache Conf с помощьюдиректива для вашего безопасного местоположения
apache.conf :
[…]
ServerName apache.mydom.com:80
[…]
LoadModule auth_kerb_module modules/mod_auth_kerb.so
[…]
<LocationMatch /secure)>
[… some other stuff …]
Order allow,deny
Allow from all
AuthType Kerberos
AuthName "Authentification requise"
KrbAuthRealms MYDOM.COM
#this allows user to be saved in the request
KrbSaveCredentials on
#this one force Negotiate AuthType instead of basic fallback
KrbMethodNegotiate on
#this trim the realm from username saved in the request (request.getRemoteUser() will give you "user" instead of "user@MYDOM.COM"
KrbLocalUserMapping on
KrbAuthoritative on
KrbVerifyKDC on
Krb5Keytab /install/binaries/httpd/apache.keytab
KrbServiceName HTTP
require valid-user
</LocationMatch>
И одну вещь, которую я почти не смог найти в Интернете, вы должны изменитьваша конфигурация сервера tomcat (tomcat / conf / server.xml):
<Connector [... AJP connector configuration ...] request.tomcatAuthentication="false"/>
Это очень важно , потому что без него tomcat не получит никакой информации из аутентификации tomcat.Не забывайте также, что DNS действительно очень важен для установки Kerberos.Если у вас есть какие-либо проблемы, попробуйте проверить свой DNS для всех ваших серверов.