НАСТРОЙКА SSO KERBEROS
Для включения аутентификации с использованием службы Kerberos нужно выполнить следующие условия:
- Kerberos_ENABLED=true (включение доступной стратегии авторизации kerberos)
- KERBEROS_CONF_PATH=/etc/krb5.conf (абсолютный или относительный путь к файлу конфигурации krb5.conf)
- KERBEROS_KEYTAB_PATH=/etc/krb5_multi.keytab (абсолютный или относительный путь к keytab файлу (ссылка генерация keytab файла)).
- Убедится, что в DNS существует A и RTP запись для сервера, где будет расположен PLAN-R
- Настроить браузеры для SSO
- Выполнена интеграция с Active Directory. Подробнее с настройкой подключения к Active Directory, можно ознакомиться в разделе «ИНТЕГРАЦИЯ С ACTIVE DIRECTORY»
При соблюдении всех условий при авторизации должна появится кнопка «kerberos», при нажатии на которую происходит аутентификация по сеансу операционной системы.
Кнопка аутентификации по сеансу операционной системы
Генерация keytab файла
SPN (Service Principal Name) — уникальный идентификатор экземпляра сервиса. SPN используется аутентификацией Kerberos для сопоставления экземпляра сервиса с учетной записью сервиса (service logon account). Это позволяет клиентским приложением аутентифицироваться в роли сервиса, даже не зная имени пользователя.
До того, как аутентификация Kerberos сможет использовать SPN для аутентификации сервиса, SPN должен быть привязан к учетной записи, которая будет использоваться для входа. SPN может быть привязан только к одной учетной записи. Если учетная запись, привязанная к SPN, изменяется, то необходимо заново выполнить привязку.
Когда клиент хочет воспользоваться сервисом, он находит экземпляр сервиса и составляет SPN для этого экземпляра, далее использует этот SPN для аутентификации.
Keytab-файл — это файл, содержащий пары Kerberos принципалов и их ключей (полученных с использованием Kerberos пароля). Эти файлы используются для аутентификации в системах, использующих Kerberos, без ввода пароля. Если пароль принципала изменится, то keytab-файл необходимо будет сгенерировать заново.
Windows DC
- Создание пользователя для привязки SPN (Необходимо запретить смену пароля и не ограничивать его срок действия, иначе придётся пересоздать keytab-файл)
Создание пользователя на windows DC
- В командной строке доменного контролера выполнить привязку SPN к учётной записи
- setspn -A HTTP/test-planr.dppm.ru planr-sso
Привязка SPN к созданной учетной записи
Корректность выполнения привязки SPN к учётной записи, можно проверить командой:
- setspn -L planr-sso
Проверка_привязки SPN к созданной учетной записи
- Создание и привязка keytab файла происходит с помощью следующей команды:
- ktpass -princ HTTP/test-planr.dppm.ru@DPPM.RU -mapuser planr-sso -pass Pa$$word -ptype KRB5_NT_PRINCIPAL -out C:\planr.keytab
где:
- -princ — имя принципала, содержащее SPN и Kerberos-область (realm);
- -mapuser — пользователь, к которому привязывается SPN;
- -pass — пароль пользователя;
- -ptype — указывает тип принципала (рекомендуется KRB5_NT_PRINCIPAL);
- -out — путь и имя генерируемого файла.
Создание Keytab файла
Проверку аутентификации Kerberos с помощью keytab-файла и его работоспособность, можно выполнить с помощью следующей команды(выполняется в среде linux):
- kinit -5 -V -k -t ./planr.keytab HTTP/test-planr.dppm.ru@DPPM.RU
Проверка авторизации
- Заходим в оснастку ADUC и убеждаемся, что для созданной учетной записи «User logon name» сменилось на имя привязанной SPN. Включена поддержка 128 и 256 битного шифрования для Kerberos.
Проверка учетной записи
- Далее, нужно перенести созданный keytab файл на сервер Plan-R и указать к нему путь с помощью переменной KERBEROS_KEYTAB_PATH в файле .env.
Samba DC
- Создание пользователя для привязки SPN к пользователю.
- samba-tool user create --random-password planr-sso
- samba-tool user setexpiry planr-sso –noexpiry
- samba-tool spn add HTTP/plan-r.ru planr-sso
Создание и привязка SPN к пользователю
- Далее необходимо убедиться, что для созданной учетной записи «User logon name» сменилось имя на имя привязанной SPN. Если этого не произошло, то нужно вписать имя привязанной SPN в поле «User logon name» вручную, и только после этого приступать к генерации keytab файла. Также убедимся, что включена поддержка 128 и 256 битного шифрования для Kerberos.
Имя учетной записи «User logon name»
- Генерируем keytab файл с помощью следующей команды.
Генерация keytab файла для samba DC
- Перенести файл на сервер и указать путь к нему с помощью переменной KERBEROS_KEYTAB_PATH
РЕД ОС
- Создание сервисного аккаунта для привязки SPN
- Служба каталогов РЕД АДМ -> Управление объектами домена -> Пользовтели -> Создать
Внимание! Срок действия пароля должен быть неограничен
Управление объектами домена.Пользовтели
- Создание SPN
- Служба каталогов RED ADM -> Управление доменом -> Глобальная конфигурация -> SPN -> Добавить
Глобальная конфигурация.SPN
- Далее, в поле SPN вводим имя SPN. В поле Привязать к... нажимаем на ... и находим пользователя, которого мы создали в предыдущем пункте для привязки к SPN и нажимаем Выбрать
SPN.Добавить SPN
SPN.Поиск объекта
- В итоге, поля в окне Добавить SPN должны быть заполнены, следующим образом. Нажимаем, Добавить
Создание SPN
- Далее, необходимо в свойствах созданного пользователя изменить параметр Имя для входа
РЕД АДМ -> Управление объектами домена -> Пользователи -> Выбираем созданного пользователя -> Учётная запись -> Имя для входа -> Заменяем на имя привязанной SPN -> Сохранить
Учётная запись.Имя для входа
- Генерация keytab файла
- Переходим на контроллер домена и под учётной записью администратора домена, генерируем keytab файл с помощью следующей команды в терминале:
samba-tool domain exportkeytab /tmp/planr.keytab --principal=HTTP/planr.dp.red.ru@DP.RED.RU
- Проверку аутентификации Kerberos с помощью keytab-файла и его работоспособность, можно выполнить с помощью команды:
kinit -5 -V -k -t /tmp/planr.keytab HTTP/planr.dp.red.ru@DP.RED.RU
- Переносим созданный keytab файл на сервер Plan-R и указываем к нему путь с помощью переменной KERBEROS_KEYTAB_PATH в файле .env.
Настройка браузера для SSO
Настройка браузеров Google Chrome, Microsoft Edge, Яндекс Браузер для авторизации Kerberos
Для настройки браузеров Google Chrome, Microsoft Edge, Яндекс Браузер для работы с Kerberos, необходимо выполнить следующие действия:
- Откройте Панель управления -> Свойства браузера -> вкладку Безопасность -> Местная интрасеть -> Сайты
Настройка SSO.Свойства браузера
- Далее нажмите вкладку Дополнительно
Настройка SSO.Местная интрасеть
- В поле Добавить в зону следующий узел введите доменное имя хоста на котором запущены сервисы PLAN-R и нажмите Добавить
Настройка SSO.FQDN
Настройки для всех трёх браузеров в Windows, будут идентичны.
Настройка браузера Firefox для авторизации Kerberos
Для корректной авторизации пользователей, использующих браузер Firefox, с помощью Kerberos необходимо в браузере перейти по адресу about:config и указать доменное имя хоста на котором запущены сервисы PLAN-R в следующих конфигурационных параметрах:
network.negotiate-auth.trusted-uris
network.negotiate-auth.delegation-uris
Настройка браузера