Kerberos Apache продолжает запрашивать бейсик

После очень долгой борьбы с аутентификацией Kerberos на моем веб-сайте, я наконец-то пришел к вам, потому что потерян. В настоящее время я создаю классический сайт PHP и хочу включить бесшовную аутентификацию с использованием Kerberos.

Итак, вот ситуация:

  1. У меня есть контроллер домена Windows 2012R2 с ролью KDC.
  2. У меня есть сервер Linux LAMP (fqdn = webserver.domain.local).
  3. У меня есть мой веб-сайт, который размещен на сервере Linux и который доступен через HTTPS с таким именем: site.domain.local

Я установил свою аутентификацию Kerberos в основном, следуя этим инструкциям: /questions/673976/apache-ispolzuyuschij-modauthkerb-vsegda-zaprashivaet-parol-dvazhdyi/673992#673992 (мой SPN HTTPS/site.domain.local@DOMAIN.LOCAL)
Я также зарегистрировался site.domain.local как "сайт интрасети" в настройках IE.

Когда я проверяю, работает ли аутентификация kerberos с веб-сервера с помощью kinit, аутентификация проходит успешно, но когда я захожу на site.domain.local со своего компьютера (который, конечно, связан с доменом), он предлагает мне пройти аутентификацию с BASIC. Я могу успешно войти в систему со своими учетными данными, но я предполагаю, что kerberos не работает должным образом, и я не понимаю, почему.

При доступе к сайту я получаю эту ошибку в логах апачей:

Ошибка gss_accept_sec_context(): запрошен неподдерживаемый механизм (неизвестная ошибка)

С включенным режимом отладки я получаю эти журналы:

kerb_authenticate_user, введенный с пользователем (NULL) и auth_type Kerberos

kerb_authenticate_user, введенный с пользователем (NULL) и auth_type Kerberos

Получение кредитов для HTTPS/site.domain.local@DOMAIN.LOCAL

Проверка данных клиента с использованием KRB5 GSS-API

Клиент не передал нам свои учетные данные

Предупреждение: полученным токеном является NTLM, который не поддерживается модулем Kerberos. Проверьте свою конфигурацию IE.

GSS-API major_status: 00010000, minor_status: 00000000

Я искал решение, и все с таким поведением решили его, поместив веб-сайт как "веб-сайт интрасети" в IE, но это уже сделано для меня...

У кого-нибудь есть идеи?

1 ответ

Решение

Ваш SPN неверен. Так должно быть HTTP/site.domain.local

  • HTTP и HTTPS считаются одним и тем же классом обслуживания (HTTP).
  • Вы не должны включать имя области в SPN (по крайней мере для Active Directory, не уверенный в других реализациях Kerberos).
Другие вопросы по тегам