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

Kerberos Apache продолжает запрашивать BASIC

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

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

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

Я настроил аутентификацию Kerberos в основном, следуя этим инструкциям: https://serverfault.com/a/753956/506532 (мой SPN HTTPS/site.domain.local@DOMAIN.LOCAL)
Я также зарегистрировался site.domain.local как «сайт интрасети» в настройках IE.

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

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

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 главный_статус: 00010000, второстепенный_статус: 00000000

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

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

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

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