НАСТРОЙКА 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», при нажатии на которую происходит аутентификация по сеансу операционной системы.

register imageКнопка аутентификации по сеансу операционной системы

Генерация keytab файла

SPN (Service Principal Name) — уникальный идентификатор экземпляра сервиса. SPN используется аутентификацией Kerberos для сопоставления экземпляра сервиса с учетной записью сервиса (service logon account). Это позволяет клиентским приложением аутентифицироваться в роли сервиса, даже не зная имени пользователя.

До того, как аутентификация Kerberos сможет использовать SPN для аутентификации сервиса, SPN должен быть привязан к учетной записи, которая будет использоваться для входа. SPN может быть привязан только к одной учетной записи. Если учетная запись, привязанная к SPN, изменяется, то необходимо заново выполнить привязку.

Когда клиент хочет воспользоваться сервисом, он находит экземпляр сервиса и составляет SPN для этого экземпляра, далее использует этот SPN для аутентификации.

Keytab-файл — это файл, содержащий пары Kerberos принципалов и их ключей (полученных с использованием Kerberos пароля). Эти файлы используются для аутентификации в системах, использующих Kerberos, без ввода пароля. Если пароль принципала изменится, то keytab-файл необходимо будет сгенерировать заново.

Windows DC

  1. Создание пользователя для привязки SPN (Необходимо запретить смену пароля и не ограничивать его срок действия, иначе придётся пересоздать keytab-файл)

register imageСоздание пользователя на windows DC

  1. В командной строке доменного контролера выполнить привязку SPN к учётной записи
  • setspn -A HTTP/test-planr.dppm.ru planr-sso

register imageПривязка SPN к созданной учетной записи

Корректность выполнения привязки SPN к учётной записи, можно проверить командой:

  • setspn -L planr-sso

register imageПроверка_привязки SPN к созданной учетной записи

  1. Создание и привязка 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 — путь и имя генерируемого файла.

register imageСоздание Keytab файла

Проверку аутентификации Kerberos с помощью keytab-файла и его работоспособность, можно выполнить с помощью следующей команды(выполняется в среде linux):

register imageПроверка авторизации

  1. Заходим в оснастку ADUC и убеждаемся, что для созданной учетной записи «User logon name» сменилось на имя привязанной SPN. Включена поддержка 128 и 256 битного шифрования для Kerberos.

register imageПроверка учетной записи

  1. Далее, нужно перенести созданный keytab файл на сервер Plan-R и указать к нему путь с помощью переменной KERBEROS_KEYTAB_PATH в файле .env.

Samba DC

  1. Создание пользователя для привязки 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

register imageСоздание и привязка SPN к пользователю

  1. Далее необходимо убедиться, что для созданной учетной записи «User logon name» сменилось имя на имя привязанной SPN. Если этого не произошло, то нужно вписать имя привязанной SPN в поле «User logon name» вручную, и только после этого приступать к генерации keytab файла. Также убедимся, что включена поддержка 128 и 256 битного шифрования для Kerberos.

register imageИмя учетной записи «User logon name»

  1. Генерируем keytab файл с помощью следующей команды.

register imageГенерация keytab файла для samba DC

  1. Перенести файл на сервер и указать путь к нему с помощью переменной KERBEROS_KEYTAB_PATH

РЕД ОС

  1. Создание сервисного аккаунта для привязки SPN
  • Служба каталогов РЕД АДМ -> Управление объектами домена -> Пользовтели -> Создать
    Внимание! Срок действия пароля должен быть неограничен

register imageУправление объектами домена.Пользовтели

  1. Создание SPN
  • Служба каталогов RED ADM -> Управление доменом -> Глобальная конфигурация -> SPN -> Добавить

register imageГлобальная конфигурация.SPN

  • Далее, в поле SPN вводим имя SPN. В поле Привязать к... нажимаем на ... и находим пользователя, которого мы создали в предыдущем пункте для привязки к SPN и нажимаем Выбрать

register imageSPN.Добавить SPN

register imageSPN.Поиск объекта

  • В итоге, поля в окне Добавить SPN должны быть заполнены, следующим образом. Нажимаем, Добавить

register imageСоздание SPN

  • Далее, необходимо в свойствах созданного пользователя изменить параметр Имя для входа
    РЕД АДМ -> Управление объектами домена -> Пользователи -> Выбираем созданного пользователя -> Учётная запись -> Имя для входа -> Заменяем на имя привязанной SPN -> Сохранить

register imageУчётная запись.Имя для входа

  1. Генерация 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

  1. Переносим созданный keytab файл на сервер Plan-R и указываем к нему путь с помощью переменной KERBEROS_KEYTAB_PATH в файле .env.

Настройка браузера для SSO

Настройка браузеров Google Chrome, Microsoft Edge, Яндекс Браузер для авторизации Kerberos

Для настройки браузеров Google Chrome, Microsoft Edge, Яндекс Браузер для работы с Kerberos, необходимо выполнить следующие действия:

  • Откройте Панель управления -> Свойства браузера -> вкладку Безопасность -> Местная интрасеть -> Сайты

register image

Настройка SSO.Свойства браузера

  • Далее нажмите вкладку Дополнительно

register image

Настройка SSO.Местная интрасеть

  • В поле Добавить в зону следующий узел введите доменное имя хоста на котором запущены сервисы PLAN-R и нажмите Добавить

register image

Настройка SSO.FQDN

Настройки для всех трёх браузеров в Windows, будут идентичны.

Настройка браузера Firefox для авторизации Kerberos

Для корректной авторизации пользователей, использующих браузер Firefox, с помощью Kerberos необходимо в браузере перейти по адресу about:config и указать доменное имя хоста на котором запущены сервисы PLAN-R в следующих конфигурационных параметрах:

network.negotiate-auth.trusted-uris

network.negotiate-auth.delegation-uris

register imageНастройка браузера


509.1-59ba7826