Настройки SSO
Настройка SSO аутентификации через Kerberos/SPNEGO
Этот документ описывает параметры конфигурации для единого входа (SSO) через Kerberos/SPNEGO в Active Directory окружении.
Пример конфигурации
sso:
enabled: true
keytab_spn: "HTTP/web.bimarkit.com@CUSTOMER.LOC"
keytab_path: "/etc/krb5.keytab"
Обязательные параметры
sso.enabled
- Тип: boolean
- По умолчанию:
false - Описание: Включает/выключает SSO аутентификацию через Kerberos
- Пример:
true
keytab_spn
- Тип: string
- Формат:
HTTP/hostname@REALM - Описание: Service Principal Name для вашего веб-приложения
- Примеры:
HTTP/webapp.customer.loc@CUSTOMER.LOCHTTP/web.bimarkit.com@CUSTOMER.LOC
⚠️ Важно: SPN должен совпадать с DNS именем вашего приложения
keytab_path
- Тип: string
- Формат: Абсолютный путь к файлу keytab
- Описание: Путь к keytab файлу с ключами сервиса
- Примеры:
/etc/krb5.keytab
Проверка подключения
Тестирование keytab файла
# Проверить содержимое keytab
klist -ket /path/to/krb5.keytab
# Проверить аутентификацию
kinit -kt /path/to/krb5.keytab HTTP/webapp.customer.loc
# Проверить билет
klist
Решение частых проблем
1. Ошибка “Key table entry not found”
Причина: Неправильный SPN в keytab Решение:
- Проверьте SPN:
setspn -L webapp-service - Убедитесь, что
keytab_spnсовпадает с SPN в keytab - Пересоздайте keytab с правильным SPN
2. Ошибка “Cannot contact KDC”
Причина: Проблемы с DNS или KDC Решение:
- Проверьте DNS:
nslookup dc.customer.loc - Проверьте доступность KDC:
telnet dc.customer.loc 88 - Убедитесь, что
krb5.confнастроен правильно
3. Ошибка “GSSAPI authentication failed”
Причина: Неправильное время или версия протокола Решение:
- Синхронизируйте время:
ntpdate dc.customer.loc - Проверьте версию протокола в keytab
- Используйте современные алгоритмы (AES256)
4. Браузер не предлагает SSO
Причина: Сайт не в зоне доверия Решение:
- Добавьте сайт в “Local Intranet” зону
- Убедитесь, что URL использует FQDN
- Проверьте настройки IE/Chrome для Integrated Windows Authentication