LINUX.ORG.RU

Двукратный запрос доменной аутентификации (apache2)

 ,


1

1

Добрый день!

Написал небольшой сайт на apache2.54 (debian) с аутентификацией в домене на 2012-м с помощью keytab-файла , и все работало штатно, но через месяц что-то с нашем царстве-королевстве произошло, кто что настроил, не знаю, но теперь при обращении к сайту на защищенный контент при вводе корректных учетных данных происходит повторный запрос, после чего страницы открываются (конечно, до закрытия браузера). В логе апача gss_accept_sec_context() failed: An unsupported mechanism was requested (, Unknown error)

Выяснилось, что теперь браузер вначале пытается авторизоваться по NTLM, а при повторной попытке, видимо, использует kerberos. Причем это только на хостах с Windows, они в домене. В линукс-хостах все нормально.

Файл конфига апача стандартный, по-умолчанию

Конфиг sites-enabled

            ErrorLog ${APACHE_LOG_DIR}/error.log
            CustomLog ${APACHE_LOG_DIR}/access.log combined

            SSLEngine on
            SSLCertificateFile      /etc/ssl/certs/_***.crt
            SSLCertificateKeyFile /etc/ssl/private/***.key

            SSLCACertificateFile /etc/apache2/ssl.crt/ca-bundle.crt

            <FilesMatch "\.(cgi|shtml|phtml|php)$">
                            SSLOptions +StdEnvVars
            </FilesMatch>
            <Directory /usr/lib/cgi-bin>
                            SSLOptions +StdEnvVars
            </Directory>

<Directory /var/www/html/site>
    AuthType Kerberos
    KrbAuthRealms DMZ.LOCAL
    KrbServiceName HTTP/***.dmz.local@DMZ.LOCAL
    Krb5Keytab /etc/apache2/***.keytab
    KrbMethodNegotiate on
    KrbMethodK5Passwd on
    require valid-user
    KrbSaveCredentials on
</Directory>
    </VirtualHost>

При создании кейтаб-файла было указано все тоже стандартно. Где собака порылась, что можно предпринять со стороны веб-сервера?


Если браузер приходит с тикетом Kerberos, то вообще не должно быть никаких запросов. Kerberos - это SSO. Не то, что повторных запросов - вообще не должно быть никаких.

Если раньше, как ты говоришь, ты всегда вводил корректные учетные данные, то изначально что-то было настроено неверно.

Если сайт запрашивает креды хотя бы один раз, то значит, аутентификация по тикету Kerberos не работает.

А так - смотри настройки на винде и групповые политики. Может быть надо в Trusted sites сайт добавить. Браузер не посылает тикет Kerberos первому попавшемуся сайту.

bigbit ★★★★★
()
Последнее исправление: bigbit (всего исправлений: 2)
Ответ на: комментарий от bigbit

«А так - смотри настройки на винде и групповые политики. Может быть надо в Trusted sites сайт добавить. Браузер не посылает тикет Kerberos первому попавшемуся сайту»

Групповые политики - этим безопасники рулят. В ПН пойду к ним. В своем IE я уже пробовал добавлять свой ресурс в доверенные узлы интранета, для этого пришлось открывать его от своего имени доменного админа, и двукратного запроса учетных данных не происходило. И это действует только если браузер работает от админа, на непривилегированного пользователя уже не распространяется. Эту всю кухню я не знаю. Но ты верно предположил, что «доверенный узел» решает проблему! А вот если запускать другие браузеры от того же админа, то эта настройка не действует, все равно двукратный запрос приходит. По-моему, такое свойство «доверенные сайты» у всех браузеров отличаются от такого же у IE. К сожалению, теории куда ни зайдешь никто на рассказывает, везде только «делай так».

«Если сайт запрашивает креды хотя бы один раз, то значит, аутентификация по тикету Kerberos не работает.»

у нас все внутренние ресурсы запрашивают учетные записи пользователя в домене, а мой ресурс в домене в зоне DMZ, а мы работаем в другом домене.

DrBim
() автор топика
Последнее исправление: DrBim (всего исправлений: 3)
Ответ на: комментарий от bigbit

А что конкретно может означать в логе апача? - gss_accept_sec_context() failed: An unsupported mechanism was requested (, Unknown error)

gss - значит, используется gssapi, который является одним из методов реализации SASL, и он позволяет оборачивать kerberos-аутентификацию. Значит ли это, что с первого же раза клиент пытается использовать именно kerberos (и почему тогда «затребован неподдерживаемый механизм»)? Не хочется уходить от кербероса, хотя здесь он единой точкой служить не может, поскольку домены разные.

DrBim
() автор топика
Ответ на: комментарий от DrBim

А что конкретно может означать в логе апача? - gss_accept_sec_context() failed: An unsupported mechanism was requested (, Unknown error)

Да все как ты и сказал: одна из причин этой ошибки - то, что браузер присылает NTLM-тикет вместо Kerberos-тикета.

а мой ресурс в домене в зоне DMZ, а мы работаем в другом домене.

Между доменами есть трасты? Или клиент может соединиться с домен-контроллером DMZ? Если на оба вопроса ответ «нет», то Kerberos-тикет ты никак не получишь.

bigbit ★★★★★
()
Последнее исправление: bigbit (всего исправлений: 1)