Настройка аутентификации через Kerberos


Общие сведения 

Kerberos – это один из методов двухфакторной/многофакторной аутентификации на базе специализированного сетевого протокола аутентификации Kerberos, для обеспечения безопасности использующего криптографию с симметричными ключами.

Avanpost FAM поддерживает аутентификацию посредством механизма Kerberos в приложения, подключенные посредством следующих интеграционных механизмов и компонентов: 

В процессе настройки Kerberos-аутентификации следует учитывать:

  1. Сервисное имя, указываемые при выпуске keytab-файла (файл, содержащий пару значений «имя пользователя и ключ»/«принципал и секрет» и использующийся для автоматической аутентификации без необходимости ввода пароля): HTTP/base_url (параметр base_url берется из конфигурационного файла Avanpost FAM Server). Пример сервисного имени: HTTP/idp.avanpost.local
  2. В билете (ticket), направляемом клиентом серверу Avanpost FAM, содержится информация о пользователе в формате domain\user. Например, в MS AD эти поля соответствуют значению User logon name (pre-Windows 2000):
  3. Аутентификация посредством Kerberos работает только при публикации интерфейса Avanpost FAM по имени.

Настройка рабочего места Windows для доменной Kerberos-аутентификации

Сервер должен быть прописан в зоне Local Intranet. Для этой зоны должны быть выполнены следующие настройки:

  • User Authentication – Logon – Automatic logon only in Intranet zone;
  • Security – Enable Integrated Windows Authentication.

Перед использованием метода аутентификации Kerberos для сквозной аутентификации пользователя в приложениях без дополнительного ввода логина и пароля требуется провести настройку браузера:

  1. В панели управления войти в раздел "Свойства браузера" во вкладку "Безопасность" (или запустить командную строку клавишами Win+R и запустить команду inetcpl.cpl).
  2. Выбрать зону безопасности "Местная интрасеть" ("Local Intranet") и нажать кнопку "Сайты" ("Sites").
  3. Нажать кнопку "Дополнительно" и в открывшемся окне "Местная интрасеть" внести запись вида http://idp.avanpost.local и http://localhost: для добавления ввести в текстовую строку и нажать "Добавить" ("Add"), после добавления нажать "Закрыть" ("Close") и ОК.
  4. Открыть расширенные настройки зоны "Местная интрасеть" нажатием на кнопку "Другой..." ("Custom level...").image2021-5-21_18-19-36.png
  5.  В разделе "Проверка подлинности пользователя" установите параметр "Автоматический вход в сеть только в зоне интрасети".
  6. Перейти во вкладку "Дополнительно" и в разделе "Безопасность" выбрать "Разрешить встроенную проверку подлинности Windows*" ("Enable Integrated Windows Authentication*").
  7. Сохранить настройки и перезапустить компьютер. После настройки вход в приложения посредством Avanpost FAM будет осуществляться без требования ввода логина и пароля.

При необходимости настройки метода на множестве рабочих машин рекомендуется проводить настройку через групповые политики (Microsoft Active Directory Group Policy Management).

Подключение Kerberos-аутентификации через Microsoft Active Directory

Настройку метода аутентификации Kerberos требуется осуществлять следующим образом:

  1. Добавить keytab-файлы, содержащие ключи аутентентфикации, в Avanpost FAM. Добавление keytab-файлов доступно через административную консоль или через конфигурационный файл config.toml
    1. Добавление keytab-файлов через конфигурационный файл осуществляется следующим образом:
      1. В конфигурационном файле Avanpost FAM Server config.toml следует отредактировать параметры секции [kerberos], задав значения параметров keytab (путь к keytab-файлу, содержащему ключи аутентификации), serviceAccountName (имя службы, использующейся для представления приложения в Avanpost FAM), requireHostAddr (параметр, указывающий требуется ли при аутентификации совпадение IP-адреса хоста, с которого выполняется запрос, с IP-адресом, зарегистрированным в Kerberos). Пример настройки конфигурационного файла:
        [kerberos]
        keytab = "/opt/idp/krb5.keytab"
        serviceAccountName = "HTTP/idp.avanpost.local"
        requireHostAddr = false
      2. При использовании мультидоменной сквозной аутентификации возможно использовать несколько keytab-файлов, сгенерированных на каждом контроллере домена. В этом случае все keytab-файлы указываются в конфигурационном файле:
        [kerberos]
        
        [kerberos.one]
        keytab = "/opt/idp/krb1.keytab"
        serviceAccountName = "HTTP/idp.avanpost.local"
        requireHostAddr = false
        
        [kerberos.two]
        keytab = "/opt/idp/krb2.keytab"
        serviceAccountName = "HTTP/idp.avanpost.local"
        requireHostAddr = false
      3. Проверить, что имя публикации Avanpost FAM доступно с контроллеров домена, а полное имя домена доступно с сервера Avanpost FAM. В случае недоступности следует добавить A-запись (address. запись для связи домена с IP-адресом сервера) в DNS или в файл hosts. Пример записи на сервере с контроллером домена:
        C:\\Windows\\System32\\drivers\\etc
        hosts
        10.10.17.5 idp.avanpost.local
        Пример записи на сервере Avanpost FAM:
        /etc/hosts
        10.10.17.2 dc.avanpost.local
        10.10.17.2 avanpost.local
    2. Добавление keytab-файлов через административную консоль осуществляется следующим образом:
      1. Войти в раздел "Kerberos-ключи" режима "Сервис" административной консоли (более подробно функционал описан в разделе данной статьи Управление Kerberos-ключами).
      2. Нажать кнопку "Загрузить ключи".
      3. В открывшейся форме нажать кнопку "Загрузить файл", указать путь к keytab-файлу и нажать кнопку "Загрузить".
      4. Убедиться, что загруженный ключ активен. При необходимости перейти в профиль ключа, нажать кнопку , установить флажок в параметре "Используется" и нажать кнопку "Сохранить". 
  2. Создать учетную запись пользователя в Active Directory:
    1. Запустить консоль Active Directory Users and Computers командой dsa.msc.
    2. Выбрать контейнер для нового пользователя, щелкнуть по нему правой кнопкой и выбрать New - User.
    3. Указать имя, фамилию и инициалы пользователя, выбрать его userPrincipalName.
    4. Установить пароль для учетной записи, выключить опцию истечения пароля (установить флаг в чекбоксе "Password never expires") и запретить пользователю изменять пароль (установить флаг в чекбокс "User cannot change password"). 
  3. Создать keytab-файл. Для этого следует войти на контроллер домена с правами администратора домена и выполнить от имени администратора команд по аналогии (пояснения к команде даны в таблице).

    ktpass -out c:\AP\krb5.keytab -princ HTTP/idp.avanpost.local@DOMAIN.NAME -mapUser domain\user -mapOp set -pass P@ssw0rd -crypto All -pType KRB5_NT_PRINCIPAL
    НаименованиеОписание
    c:\AP\krb5.keytabПуть, где будет находиться сгенерированный keytab-файл.
    HTTP/idp.avanpost.localИмя сервиса в формате HTTP/base_url.
    @DOMAIN.NAMEDNS-имя (обязательно в верхнем регистре).
    domain\userИмя учетной записи (с указанием домена), созданной в п.4. данной инструкции.
    P@ssw0rdПароль учетной записи, созданной в п.4. раздела "Настройка".
  4. Выполнить настройку автоматизированного рабочего места согласно инструкции Настройка рабочего места Windows для доменной Kerberos-аутентификации данного раздела. 
  5. Переместите файл krb5.keytab (расположен по адресу C:\AP\krb5.keytab) на сервер службы FAM в каталог /opt/idp/. При необходимости следует предоставить права на данный файл.
  6. Перезапустить службу Avanpost FAM Server, используя команду: 
    sudo systemctl restart idp
  7. Включить для групп пользователей или приложений, к которым представлен доступ той или иной группе, процесс аутентификации, включающий аутентификацию при помощи Kerberos. Для настройки метода допускается использовать как стандартные механизмы административной консоли (более подробно о настройке процесса аутентификации описано в разделе Настройка процесса аутентификации, настройки процесса аутентификации для группы описаны в разделе Управлением профилей групп, настройки процесса аутентификации для приложения описаны в разделе Профиль приложения), так и настройку скриптов MFA

Настойка метода Kerberos в Avanpost FAM Agent

Перед осуществлением настройки требуется установить Avanpost FAM Agent согласно инструкции по установке.

Настройку метода аутентификации Kerberos для Avanpost FAM Agent проводить следующим образом:

  1. В административной консоли Avanpost FAM Server из режима "Приложения" перейти в профиль Enterprise SSO-приложения (тип Agent), созданного при установке Avanpost FAM Agent.
  2. В профиле данного приложения перейти во вкладку MFA нажать и добавить фактор аутентификации "Password". 
  3. Добавить в группу пользователей, которые будут аутентифицироваться в настроенном приложении. Ручное добавление пользователей администратором реализуется в профиле группы. Также доступ пользователя к группам и ролям допускается редактировать в УЗ пользователя
  4. Запустить Avanpost FAM Агент на АРМ пользователя и инициировать аутентификацию. Аутентификация посредством метода Kerberos должна пройти успешно.

Управление Kerberos-ключами

Для корректной работы Kerberos-аутентификации требуется загрузить keytab-файл, содержащий ключи аутентификации, в Avanpost FAM. Управление ключами Kerberos осуществляется при помощи административной консоли Avanpost FAM в разделе "Kerberos-ключи" режима "Сервис". Раздел "Kerberos-ключи" содержит следующие возможности и информацию:

  • Реестр Kerberos-ключей с общей информацией:
    • Используется — Статус ключа: (активный)/ (неактивный);
    • Realm — Область Kerberos (сеть, используемая Kerberos, состоящая из серверов KDC и клиентов);
    • Учетная запись — Сервисное имя из keytab-файла (в формате HTTP/base_url);
    • Загружен — Дата и время загрузки ключа;
    • Источник — Наименование keytab-файла, из которого загружен ключ;
    • Истекает — Дата истечения срока действий ключа;
  • Кнопка "Загрузить ключи"  Нажать, чтобы перейти во интерфейс добавления ключей;
  • Кнопка "Проверить токен" Нажать, чтобы перейти во интерфейс проверки ключа.

Для загрузки нового ключа требуется нажать кнопку "Загрузить ключи" и в открывшейся форме нажать кнопку "Выбрать файл". Затем указать путь до keytab-файла и нажать кнопку "Загрузить" (для отмены действия нажать "Отмена").

Для проверки токена следует нажать на кнопку "Проверить токен" и в открывшейся форме ввести контрольную сумму токена. Затем следует нажать кнопку "Проверить токен". В зависимости от того, совпадут ли контрольные суммы, Avanpost FAM сообщит прошел ли токен проверку.

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

ПараметрЗначение
Используется

Включить/выключить чекбокс:

  • при включенном чекбоксе ключ переводится в статус активный и может использоваться для аутентификации по Kerberos;
  • при выключенном чекбоксе ключ переводится в статус неактивный и не может использоваться для аутентификации по Kerberos.

Чтобы изменить статус, следует нажать , включить/выключить чекбокс и нажать кнопку "Сохранить" (для отмены изменений нажать кнопку "Отмена"). 

IDУникальный идентификатор ключа.
ЗагруженДата и время загрузки ключа.
RealmОбласть Kerberos (сеть, используемая Kerberos, состоящая из серверов KDC и клиентов).
Учетная записьСервисное имя из keytab-файла (в формате HTTP/base_url).
ИстекаетДата истечения срока действий ключа.
Тип ключаТип шифрования ключа, представляющий комбинацию криптографического алгоритма и алгоритма обеспечения целостности передаваемых данных (например, des-cbc-md5 или aes128-cts-hmac-sha1-96). 
ВерсияВерсия ключа (для случаев, когда у одного принципала имеется несколько ключей для одного Realm): чем выше версия ключа, тем позже был выпущен ключ.
Контрольная суммаКриптографическая контрольная сумма, используемая для подтверждения целостности сообщения.

Для удаления ключа требуется нажать в его профиле и подтвердить действие.

Обсуждение