Добавление доменов аутентификации в «Агрегаторе»

Общие сведения о доменах аутентификации

Домен аутентификации - источник сведений о субъектах и их полномочиях.

Следует предусмотреть, что в целях безопасности учетная запись для биндинга (подключения) к домену не должна иметь прав на удаление или изменение объекта типа «пользователь».

Для отображения списка доменов аутентификации следует перейти «Системные параметры - Домены аутентификации». Основные параметры списка приведены в таблице (см. таблицу Параметры списка доменов аутентификации).

Доступ к разделу «Системные параметры» определяется разрешениями «Просмотр системных параметров» и «Изменение системных параметров» (см. подраздел Назначение служебных функций администраторам).

Таблица 1. Параметры списка доменов аутентификации
Параметр Описание

«Название»

Текстовое наименование домена аутентификации

«Приоритет»

Приоритет отображения в списке доменов аутентификации

«Название в системе»

Тип домена аутентификации

«Пользователи»

Количество пользователей домена аутентификации

«Комментарии»

Информационное сообщение, используемое для описания назначения домена аутентификации

«Теги»

Список тегов, назначенных домену аутентификации.

При выборе тега выполняется переход к разделу «Системные параметры – Теги» со списком объектов, которым назначен данный тег

Поддерживается:

  • поиск записей по таблице;

  • изменение внешнего вида таблицы.

Внешний вид таблицы можно модифицировать, изменив:

  • список отображаемых столбцов. Для изменения списка нужно воспользоваться графическим элементом image и отметить наименования столбцов, которые будут отображены, или снять отметку с наименований, которые должны быть скрыты из отображения. Для возврата к исходному состоянию отображения следует воспользоваться экранной кнопкой [Сбросить]. Экранная кнопка будет заблокирована, если нет изменений для возврата к исходному состоянию;

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

  • сортировку записей. Для сортировки нужно воспользоваться графическим элементом image для соответствующего столбца.

Доступны следующие действия над доменом аутентификации:

  • редактирование. Для этого нужно пометить домен аутентификации и нажать на экранную кнопку [Изменить];

  • удаление. Для этого нужно пометить домен аутентификации и нажать на экранную кнопку [Удалить];

  • назначение тегов домену аутентификации. Для этого нужно пометить домен аутентификации и нажать экранную кнопку [Теги]. Общее описание по применению тегов приведено в подразделе Общие сведения о тегах.

Добавление домена аутентификации LDAP

Перечень параметров для добавления домена аутентификации MS AD (LDAP)

Для добавления домена аутентификации следует перейти «Системные параметры - Домены аутентификации», а затем нажать экранную кнопку [Создать] и выбрать из выпадающего списка «Microsoft AD DS/LDAP».

Далее заполнить данные, перечисленные в столбце «Параметр» следующей таблицы (см. таблицу Данные для добавления аутентификации MS AD).

Для проверки и сохранения параметров конфигурации нужно нажать экранную кнопку [Тест], затем [Создать].

Таблица 2. Данные для добавления аутентификации MS AD
Параметр Описание

«Название»

Текстовое наименование домена аутентификации

«Комментарий»

Информационное сообщение, используемое для описания назначения домена аутентификации

«Приоритет»

Преимущество использования домена аутентификации при проверке субъекта и его полномочий.

Порядок отображения доменов зависит от приоритета домена и его наименования:

  • чем ниже приоритет, тем выше домен в списке;

  • при наличии доменов с одинаковым приоритетом действует сортировка по алфавиту

«Метка»

Информационное поле, используемое для идентификации объекта во внутренней структуре данных.

Параметр используется для поиска аналогичного домена «Универсального диспетчера», поэтому должен быть одинаковым как на портале «Агрегатор администратора» (при его использовании), так и на «Портале администратора».

Поле может состоять из букв латинского алфавита, цифр, знаков «-» (дефис) и «_» (подчеркивание)

«Субъекты»

Выбор субъектов, для которых будет доступен домен аутентификации.

Возможные значения:

  • «Все» - домен аутентификации будет доступен как для пользователей, так и для администраторов и персонала. Такое значение выбирается, если домен аутентификации должен быть доступен на порталах «Агрегетор администратора», «Агрегатор пользователя», «Агрегатор универсальный», и при подключении из компонента «Клиент»;

  • «Администраторы и персонал» - домен аутентификации будет доступен только для администраторов и персонала. Такое значение выбирается, если домен аутентификации должен быть доступен только на «Агрегаторе администратора» или «Агрегаторе универсальном»;

  • «Пользователи» - домен аутентификации будет доступен только для пользователей. Такое значение выбирается, если домен аутентификации должен быть доступен на «Агрегаторе пользователя», «Агрегаторе универсальном» или при подключении пользователя из компонента «Клиент»;

  • «Система» - домен аутентификации не будет доступен ни для пользователей, ни для администраторов и персонала

«Порталы»

Выбор порталов «Агрегатора», для которых будет доступен домен аутентификации. Если портал не выбран, то домен аутентификации не будет доступен для него.

В списке доступных значений отображаются все доступные узлы порталов с их полным доменным именем.

Администратору нужно выбирать узел в соответствии со значением, указанным в параметре «Субъекты».

Примеры:

  • если в параметре «Субъекты» указано «Пользователи», то в параметре «Порталы» должен быть выбран узел, соответствующий либо «Агрегатору пользователя», либо «Агрегатору универсальному»;

  • если в параметре «Субъекты» указано «Администраторы и персонал», в параметре «Порталы» должен быть выбран узел, соответствующий либо «Агрегатору администратора», либо «Агрегатору универсальному»;

  • если в параметре «Субъекты» указано «Все», то в параметре «Порталы» может быть выбран узел, соответствующий либо «Агрегатору пользователя», либо «Агрегатору администратора», либо «Агрегатору универсальному». Значение выбирается исходя из потребностей в разделении доменов аутентификации для того или иного субъекта.

При изменении списка узлов:

  • если узел удален, то он автоматически удалится из списка доступных значений для этого параметра. Уже назначенное значение удалится из свойств домена аутентификации;

  • если узел добавлен, то он автоматически добавится в список доступных значений для этого параметра, но не будет автоматически выбран для использования.

В случае, если в параметре «Порталы» был указан единственный узел, который затем был удален, то этот домен аутентификации не будет доступен ни в каком из порталов.

Для выбора всех порталов используется значение «Все»

«Сервер LDAP»

IP-адрес или доменное имя сервера службы каталогов, являющегося источником сведений о субъектах и их полномочиях

«Порт»

TCP-порт, на котором запущена служба каталогов.

Возможные стандартные значения:

  • «389» (по умолчанию). Используется, если доступ к службе каталогов осуществляется по протоколу LDAP;

  • «636». Используется, если доступ к службе каталогов осуществляется по протоколу LDAPS;

  • «3268». Альтернативный порт. Используется, если доступ к службе каталогов осуществляется по протоколу LDAP;

  • «3269». Альтернативный порт. Используется, если доступ к службе каталогов осуществляется по протоколу LDAPS.

Для ускорения поиска пользователей в службе каталогов рекомендуется указывать альтернативный порт

«Использовать SSL»

Использовать защищенное соединение при взаимодействии со службой каталогов

«Проверять SSL»

Выполнять проверку цепочки сертификатов и имени (hostname) сервера службы каталогов.

Возможные значения:

  • «Да» (по умолчанию для создаваемых доменов) - использовать механизм проверки. Если при этом выключен параметр «Использовать SSL», то значение «Проверять SSL» не применяется (то есть, проверка сертификатов отключена). Если используется защищенное соединение и включен механизм проверки, то TLS-соединение будет установлено только при отсутствии ошибок проверки сертификатов и имя сервера службы каталогов;

  • «Нет» (по умолчанию для уже созданных ранее доменов) - не использовать механизм проверки. Если при этом включен параметр «Использовать SSL», то ошибки при проверке сертификатов не влияют на подключение (TLS-соединение все равно будет установлено)

Корневой сертификат УЦ должен быть добавлен на узел «Агрегатора администратора» (см. подраздел Установка корневого сертификата центра сертификации документа СЛЕТ.10001-01 90 02 «Руководство администратора. Настройка программного комплекса»). При этом:

  • сертификат должен быть задан в формате Base64, пример:

-----BEGIN CERTIFICATE-----
MIIDVzCCAj+gAwIBAgIQPvc7pjfSf5VLzNdgExZPxzANBgkqhkiG9w0BAQsFADA+
MRMwEQYKCZImiZPyLGQBGRYDbGFuMRIwEAYKCZImiZPyLGQBGRYCc2QxEzARBgNV
....
-----END CERTIFICATE-----
  • использование параметра REQUESTS_CA_BUNDLE конфигурационного файла termidesk.conf опционально: достаточно добавить корневой сертификат в системное хранилище ОС, но работа с параметром также поддерживается.

«Путь к секретам»

Параметр доступен, если на этапе установки Termidesk VDI был выбран способ хранения паролей «hvac».

Путь к аутентификационным данным учетной записи, расположенным в хранилище. Формат задания пути приведен в подразделе Хранение чувствительной информации с выбранным способом хранения «hvac».

Пример: «hvac-kv://secret#termidesk-admin/msad/»

«Механизм подключения»

Механизм подключения к службе каталогов.

Возможные значения:

  • «SASL Bind» - безопасный механизм подключения с использованием протокола SASL. При выборе этого значения потребуется:

    • заполнить параметр «Путь до Keytab», при этом вводить сервер Termidesk в домен не требуется (необходимо только задание и наличие keytab-файла);

    • убедиться, что на узле существует файл /etc/krb5.conf, в котором заданы настройки доменов для подключений к ним. Пример файла /etc/krb5.conf приведен после таблицы;

  • «Simple Bind» - небезопасный механизм подключения, передающий данные для подключения в открытом виде.

Значение по умолчанию: «SASL Bind»

«Учётная запись»

Параметр доступен, если на этапе установки Termidesk был выбран способ хранения паролей «config».

Учетная запись в формате Distinguished Name (DN) в домене MS AD (LDAP), используемая для подключения к службе каталогов.

Пример: «CN=admin,OU=user,DC=test,DC=desk»

«Пароль учётной записи»

Параметр доступен, если на этапе установки Termidesk был выбран способ хранения паролей «config».

Набор символов, подтверждающий полномочия объекта для подключения к службе каталогов

«Таймаут, с»

Время ожидания (в секундах) ответа от службы каталогов.

Значение по умолчанию: «10»

«Base DN»

Корень поиска в службе каталогов в формате DN. Параметру следует задавать значение, соответствующее записи верхнего уровня в иерархии службы каталогов (без указания OU).

Вводимое значение не должно содержать пробелов:

  • в начале и конце строки;

  • рядом с разделителями (запятыми);

  • в элементах пути (например, «DC=company name,DC=de»).

Пример: «DC=test,DC=desk»

«Имя класса пользователя»

Атрибут класса пользователя в службе каталогов.

Для корректного заполнения данного поля необходимо указать значение «person»

«Атрибут идентификатора пользователя»

Атрибут уникального имени или идентификатора пользователя в службе каталогов.

Атрибут идентификатора пользователя задается с учетом того, какой шаблон использовался при выдаче сертификата пользователя. Например, значение «name» для механизма аутентификации Kerberos PKINIT указывается в том случае, если сертификат для подключения выдан на имя пользователя.

Для корректного заполнения данного поля необходимо указать:

  • значение «name», если активирован параметр «Использовать PKINIT»;

  • значение «userPrincipalName», если в параметре «Формат имени пользователя для аутентификации» используется «userPrincipalName»;

  • значение «SamAccountName» в остальных случаях

«Список атрибутов пользователя»

Список атрибутов, содержащий уникальные данные пользователя, разделенные запятыми.

Для корректного заполнения данного поля необходимо указать значение:

  • «userPrincipalName», если в параметре «Формат имени пользователя для аутентификации» используется «userPrincipalName»;

  • «name», если в параметре «Формат имени пользователя для аутентификации» используется «sAMAccountName»

«Формат имени пользователя для аутентификации»

Формат имени пользователя, заданный в службе каталогов.

Если на пользовательской рабочей станции установлен компонент «Клиент» версии, младше 6.0, то он будет поддерживать только формат «sAMAccountName».

Возможные значения:

  • «sAMAccountName» (по умолчанию) - имя пользователя без доменной части;

  • «userPrincipalName» - имя пользователя с доменной частью

«Имя атрибута группы»

Атрибут принадлежности к группе в службе каталогов.

Для корректного заполнения данного поля необходимо указать значение «group»

«Атрибут имени группы»

Атрибут идентификатора группы, к которой относится субъект в службе каталогов.

Атрибут имени группы задается с учетом того, какой шаблон использовался при выдаче сертификата пользователя. Например, значение «name» для механизма аутентификации Kerberos PKINIT указывается в том случае, если сертификат для подключения выдан на имя пользователя.

Для корректного заполнения данного поля необходимо указать:

  • значение «distinguishedname», если включены параметры «Использовать рекурсивный поиск групп» или «Использовать обратный порядок проверки членства пользователей»;

  • значение «name», если активирован параметр «Использовать PKINIT» или «Использовать Kerberos»;

  • значение «cn» в остальных случаях.

Если используется значение «distinguishedname», то при добавлении группы в домен аутентификации по пути «Системные параметры - Домены аутентификации - Наименование домена - Группы» нужно указывать длинные имена групп, например: «CN=RootGroup,CN=Users,DC=test,DC=desk».

Если используется значение «cn», то нужно указывать короткие имена групп.

Если параметр «Атрибут имени группы» был изменен, то необходимо заново добавить группы, используя соответствующие имена групп: для «cn» - короткие имена, для «distinguishedname» - длинные имена

«Атрибут членства в группе»

Идентификатор группы для назначения полномочий субъекту.

Для корректного заполнения данного поля необходимо указать значение «member»

«Атрибут групп для LDAP-запросов»

Атрибут, определяющий группы пользователя при запросах к службе каталогов.

Возможные значения: «objectClass», «objectCategory»

«Время хранения дополнительных атрибутов учетной записи пользователей, сут»

Срок хранения (в сутках) дополнительных атрибутов учетной записи пользователей в БД. При наступлении срока данные будут очищены.

Возможные значения:

  • «0» (по умолчанию) - не хранить дополнительные атрибуты;

  • числовое значение - хранить дополнительные атрибуты на протяжении заданного срока

«Использовать рекурсивный поиск групп»

При запросе групп пользователя будут учтены его родительские группы, в которых он состоит неявно. При этом проверяется вхождение пользователя только в те группы, которые добавлены в домен аутентификации в Termidesk.

Если дополнительно включен параметр «Использовать обратный порядок проверки членства пользователей», то параметр «Использовать рекурсивный поиск групп» можно не включать.

Возможные значения:

  • «Да» - использовать рекурсивный поиск;

  • «Нет» (по умолчанию) - не использовать рекурсивный поиск

«Использовать обратный порядок проверки членства пользователей»

Проверка соответствия членства пользователя в группах службы каталогов членству в группах домена аутентификации. Для работы функционала необходимо, чтобы был задан параметр «Атрибут имени группы».

Этот параметр нужно включить при большом количестве групп непосредственно на службе каталогов MS AD. В этом случае сначала будет проверяться вхождение пользователя в группы домена аутентификации (в том числе рекурсивно), затем будет происходить проверка найденных групп в службе каталогов MS AD.

При выключении этого параметра применяется настройка выбора «Атрибут групп для LDAP-запросов»: «objectClass» или «objectCategory».

При включении этого параметра всегда применяется настройка выбора «Атрибут групп для LDAP-запросов»: «objectClass».

Возможные значения:

  • «Да» - использовать обратный порядок;

  • «Нет» (по умолчанию) - не использовать обратный порядок

«Динамическая проверка членства пользователя в группах»

Управление динамической проверкой вхождения пользователя в группу службы каталогов.

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

Особенности функционирования:

  • если пользователю уже назначено РМ, то проверяется вхождение пользователя в группу, указанную в свойствах фонда РМ. Проверка выполняется каждый раз при доступе к ресурсу. При этом если у пользователя отозваны права на доступ, то он:

    • либо не увидит скрытый ресурс в зависимости от настройки «Скрывать недоступные ресурсы»;

    • либо увидит, но не сможет получить доступ к нему;

    • либо получит доступ к назначенному РМ, если права доступа были назначены на другую группу, в которую входит пользователь и которая указана в свойствах фонда РМ;

    • либо получит доступ к назначенному РМ, если оно назначено на учетную запись пользователя напрямую.

Возможные значения:

  • «Режим совместимости 6.0» (по умолчанию) - при аутентификации пользователя происходит запрос к службе каталогов для проверки его вхождения в группы. После этого группы пользователя актуализируются в БД. При попытке получить ресурс из фонда доступ определяется на основе информации из БД (БД не обновляется);

  • «Периодическое обновление» - если пользователя нет в БД и он впервые аутентифицируется, то происходит запрос к службе каталогов для получения актуальной информации о нем. Если пользователь есть в БД, то информация берется из нее. Актуализация пользователей и групп для всех доменов аутентификации с этим значением выполняется периодической фоновой задачей раз в 24 часа;

  • «Динамическая проверка» - при аутентификации пользователя или получении ресурсов происходит запрос к службе каталогов для получения актуальной информации о нем. При обращении к службе каталогов информация о полученных группах кешируется во внутренней памяти. Время кеширования определяется системным параметром «Таймаут кеша хранения групп домена, с»

«Использовать PKINIT»

Использовать механизм аутентификации Kerberos PKINIT при аутентификации пользователя. PKINIT - механизм, позволяющий использовать сертификаты X.509 в качестве метода аутентификации.

Предполагается, что механизм аутентификации Kerberos PKINIT настроен в инфраструктуре организации и пользователю выданы соответствующие сертификаты и ключи для подключения (персональный сертификат, закрытый ключ к нему и корневой сертификат ЦС, на котором выпущен персональный сертификат).

При активации механизма аутентификации Kerberos PKINIT нужно указать актуальный порт в параметре «Порт PKINIT», а также указать нужные значения параметров «Атрибут имени группы» и «Атрибут идентификатора пользователя».

Настройки параметров «Атрибут имени группы» и «Атрибут идентификатора пользователя», и связанных с ними «Формат имени пользователя для аутентификации» и «Список атрибутов пользователя» задаются с учетом того, какой шаблон использовался при выдаче сертификата пользователя.

Поскольку служба каталогов MS AD использует шаблон с форматом «userPrincipalName», то рекомендуется использовать в настройках параметров этот формат (там, где он применим).

Возможные значения:

  • «Да» - использовать механизм;

  • «Нет» (по умолчанию) - не использовать механизм

«Порт PKINIT»

TCP/UDP порт, на котором запущена служба Kerberos.

Значение по умолчанию: «88»

«Использовать Kerberos»

Использовать механизм аутентификации по билету Kerberos.

Доступность функционала зависит от типа редакции Termidesk.

Предполагается, что механизм аутентификации по билету Kerberos настроен в инфраструктуре организации (cм. подразделы Получение и добавление keytab-файла для Kerberos-аутентификации и Настройка пользовательской рабочей станции для Kerberos-аутентификации).

Для работы аутентификации по билету Kerberos на терминальных серверах MS RDS, необходимо выполнить дополнительную настройку «Сессионного агента», задав значения параметрам MASTER_KEY и URL_BALANCER в его конфигурационном файле.

Если используется аутентификация Kerberos, то нужно заполнить параметр «Путь до Keytab».

Потребуется правильная настройка параметров «Атрибут имени группы», «Атрибут идентификатора пользователя», «Формат имени пользователя для аутентификации», «Список атрибутов пользователя».

Поскольку служба каталогов MS AD использует шаблон с форматом «userPrincipalName», то рекомендуется использовать в настройках параметров этот формат (там, где он применим).

Возможные значения:

  • «Да» - использовать механизм;

  • «Нет» (по умолчанию) - не использовать механизм

«Путь до Keytab»

Путь к файлу с ключами для сервисного аккаунта.

В зависимости от места хранения файла следует указать путь в формате:

Если используется хранилище, то сгенерированный на контроллере домена keytab-файл должен быть преобразован к формату BASE64.

Для подключения к службе каталогов учетная запись должна иметь как минимум следующие привилегии:

  • право на чтение объектов пользователей;

  • право на чтение Base DN;

  • право на чтение атрибутов групп.

Пример файла /etc/krb5.conf при выборе значения «SASL Bind» в параметре «Механизм подключения»:

Приведен только пример, требуется изменить файл при внедрении в соответствии с инфраструктурой организации.
[libdefaults]
  default_realm = TEST.LOC
  dns_lookup_realm = true
  rdns = false
  dns_canonicalize_hostname = false
  dns_lookup_kdc = true
  ticket_lifetime = 24h
  forwardable = true
  udp_preference_limit = 0
  default_ccache_name = KEYRING:persistent:%{uid}
#canonicalize = true
[realms]
  TEST.LOC = {
    pkinit_anchors = FILE:/var/lib/ipa-client/pki/kdc-ca-bundle.pem
    pkinit_pool = FILE:/var/lib/ipa-client/pki/ca-bundle.pem  }
    TST.LOC = {
        kdc = tst.loc
        kdc = msad.tst.loc
        admin_server = tst.loc
        default_domain = tst.loc
[domain_realm]
  .test.loc = TEST.LOC
  test.loc = TEST.LOC
  tdsk.test.loc = TEST.LOC
    tst.loc = TST.LOC
    .tst.loc = TST.LOC

Получение и добавление keytab-файла для Kerberos-аутентификации

Для получения keytab-файла на контроллере домена MS AD нужно:

  • заранее создать учетную запись (сервисный аккаунт), от имени которой будет работать служба. Для создания учетной записи нужно на КД перейти в стандартную утилиту «Active Directory - пользователи и компьютеры»;

  • в свойствах учетной записи во вкладке «Account» активировать параметр «This account supports Kerberos AES 256 bit encryption» (см. рисунок Активация параметра «This account supports Kerberos AES 256 bit encryption»);

image
Рисунок 1. Активация параметра «This account supports Kerberos AES 256 bit encryption»
  • открыть интерфейс командной строки PowerShell и выполнить команду добавления службы для сервисного аккаунта:

setspn -A HTTP/disp.termidesk.local service_account

где:

service_account - наименование сервисного аккаунта;

  • для просмотра списка служб сервисного аккаунта можно воспользоваться командой:

setspn -L service_account
  • создать файл termidesk-msad.keytab для сервисного аккаунта:

ktpass -princ HTTP/disp.termidesk.local@TERMIDESK.LOCAL -mapuser service_account@TERMIDESK.LOCAL -pass <пароль_сервисного_аккаунта> -ptype KRB5_NT_PRINCIPAL -out termidesk-msad.keytab -crypto AES256-SHA1

где:

HTTP/disp.termidesk.local - указание ранее созданного субъекта-службы;

service_account@TERMIDESK.LOCAL - наименование сервисного аккаунта;

-out termidesk-msad.keytab - сохранение в файл termidesk-msad.keytab;

-crypto AES256-SHA1 - алгоритм для преобразования keytab-файла.

Алгоритм преобразования keytab-файла следует выбирать согласно установленным политикам безопасности MS AD.

Полученный файл termidesk-msad.keytab следует передать на целевой узел для хранения. Файл может быть сохранен в файловой системе узла Termidesk или в хранилище OpenBao.

Для передачи файла на целевой узел нужно выполнить команду:

scp C:\Windows\System32\termidesk-msad.keytab localuser@192.0.2.30:termidesk-msad.keytab

где:

C:\Windows\System32\termidesk-msad.keytab - путь к keytab-файлу;

localuser - имя пользователя целевого узла;

192.0.2.30 - IP-адрес целевого узла.

После передачи файла необходимо выполнить ряд действий в зависимости от выбранного хранилища.

При хранении файла в файловой системе узла Termidesk:

  • переместить файл termidesk-msad.keytab в каталог /etc/opt/termidesk-vdi:

sudo mv /home/user/termidesk-msad.keytab /etc/opt/termidesk-vdi/
  • сделать владельцем этого файла пользователя termidesk:

sudo chown termidesk:termidesk /etc/opt/termidesk-vdi/termidesk-msad.keytab
  • перезапустить службу termidesk-vdi:

sudo systemctl restart termidesk-vdi

При хранении файла в хранилище OpenBao:

  • запустить интерпретатор Python:

sudo python3
  • перевести файл в формат base64:

import base64 with open('/home/user/termidesk-msad.keytab', 'rb') as file: keytab_bytes = file.read() keytab_base64 = base64.b64encode(keytab_bytes).decode('utf-8') keytab_base64

где:

/home/user/termidesk-msad.keytab - путь к keytab-файлу;

  • сохранить результат выполнения команды в хранилище OpenBao:

bao kv put secret/termidesk/ldap keytab='BQIAAABGAAIAC1VTVVA0MDcuTEFOAARIVFRQABJ0ZXJtaWRlc2subXlkb21h aW4AAAABAAAAAAUAFwAQhKQHwhUvWGEJk92QgI/tNA=='

где:

termidesk - значение переменной SECRETS_OPENBAO_TERMIDESK_PATH, заданной в конфигурационном файле /etc/opt/termidesk-vdi/termidesk.conf;

ldap - путь к хранилищу OpenBao, где следует сохранить результат выполнения команды.

Настройка пользовательской рабочей станции для Kerberos-аутентификации

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

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

По умолчанию билет Kerberos выдается автоматически при аутентификации пользователя в системе. Однако, если билет не был выдан автоматически, нужно:

  • просмотреть список билетов:

klist
  • получить билет Kerberos:

kinit -f termidesk@TERMIDESK.LOCAL

где:

termidesk@TERMIDESK.LOCAL - учетная запись, для которой запрашивается билет.

Kerberos-аутентификация через веб-браузер требует настройки параметров безопасности в зависимости от используемой ОС и типа браузера.

На пользовательской рабочей станции с ОС Microsoft Windows:

  • при использовании веб-браузера, основанного на Chromium, нужно настроить его параметры безопасности для зоны, в которой находится сервер Termidesk. Для этого:

    • перейти «Панель управления - Свойства браузера - Безопасность»;

    • в разделе «Выберите зону для параметры ее параметров безопасности» выбрать зону «Местная интрасеть», нажать экранную кнопку [Сайты];

    • в окне «Местная интрасеть» нажать экранную кнопку [Дополнительно];

    • в поле «Добавить в зону следующий узел» ввести FQDN сервера Termidesk, нажать экранную кнопку [Добавить] (см. рисунок Добавление FQDN компонента «Универсальный диспетчер» в зону «Местная интрасеть»);

image
Рисунок 2. Добавление FQDN компонента «Универсальный диспетчер» в зону «Местная интрасеть»
Таблица 3. Данные для настройки Kerberos-аутентификации через веб-браузер Mozilla Firefox в ОС Microsoft Windows
Параметр Значение

network.negotiate-auth.allow-proxies

True

network.negotiate-auth.delegation-uris

.termidesk.local

network.negotiate-auth.trusted-uris

.termidesk.local

На пользовательской рабочей станции с ОС Astra Linux Special Edition:

  • для работы технологии единого входа с Kerberos-аутентификацией изменить файл /etc/krb5.conf, добавив в раздел libdefaults параметр forwardable = true:

[libdefaults]
forwardable = true
...
  • для настройки веб-браузера Chromium нужно:

    • в файл /etc/chromium/policies/managed/policies.json добавить строки:

      {
          "AuthServerAllowlist": "*.termidesk.local" ,
          "AuthNegotiateDelegateAllowlist": "*.termidesk.local"
      }

      где:

      *.termidesk.local - имя домена, для которого применяется Kerberos-аутентификация;

  • для настройки веб-браузера Яндекс.Браузер нужно:

    • создать каталог /etc/opt/yandex/browser/policies/managed:

      mkdir -p /etc/opt/yandex/browser/policies/managed
    • создать файл /etc/opt/yandex/browser/policies/managed/policies.json следующего содержания:

      {
          "AuthServerAllowlist": "*.termidesk.local",
          "AuthNegotiateDelegateAllowlist": "*.termidesk.local"
      }
  • для настройки веб-браузера Mozilla Firefox нужно:

Таблица 4. Данные для настройки Kerberos-аутентификации через веб-браузер Mozilla Firefox в ОС Astra Linux Special Edition
Параметр Значение

network.negotiate-auth.allow-proxies

True

network.negotiate-auth.delegation-uris

.termidesk.local

network.negotiate-auth.trusted-uris

.termidesk.local

Добавление домена аутентификации OIDC

OpenID Connect (OIDC) - это механизм, позволяющий приложению связаться со службой идентификации (Identity provider, IdP), получить данные о пользователе и вернуть их обратно в приложение. Таким образом, OIDC обеспечивает аутентификацию администраторов и пользователей без необходимости ввода логина и пароля.

Служба идентификации IdP (например, keycloak) должна быть предварительно настроена в инфраструктуре организации для возможности использования OIDC как домена аутентификации.

Поддерживаются следующие типы аутентификации:

  • по идентификатору и секрету. В этом случае используются параметры «Client ID» и «Client Secret», заданные в службе идентификации IdP;

  • по подписанному JWT-токену. В этом случае используются параметры «Client ID» и «Signed Jwt», заданные в службе идентификации IdP. Закрытый ключ, использующийся для подписи JWT-токена, должен быть загружен на узлы Агрегатора («Агрегатор администратора», «Агрегатор пользователя»).

Для добавления домена аутентификации следует перейти «Системные параметры - Домены аутентификации», а затем нажать экранную кнопку [Создать] и выбрать из выпадающего списка «OIDC».

Далее заполнить данные, перечисленные в столбце «Параметр» следующей таблицы (см. таблицу Данные для добавления аутентификации через OIDC).

Для сохранения параметров конфигурации нужно использовать экранную кнопку [Создать].

Таблица 5. Данные для добавления аутентификации через OIDC
Параметр Описание

«Название»

Параметр обязателен для заполнения.

Текстовое наименование домена аутентификации

«Комментарий»

Информационное сообщение, используемое для описания назначения источника сведений о субъектах и их полномочиях

«Приоритет»

Параметр обязателен для заполнения.

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

«Метка»

Параметр обязателен для заполнения.

Информационное поле, используемое для идентификации объекта во внутренней структуре данных Termidesk.

Начиная с Termidesk версии 5.1 поле может состоять из букв латинского алфавита, цифр, знаков «-» (дефис) и «_» (подчеркивание)

«Субъекты»

Параметр обязателен для заполнения.

Выбор субъектов, для которых будет доступен домен аутентификации.

Возможные значения:

  • «Все» - домен аутентификации будет доступен как для пользователей, так и для администраторов и персонала. Такое значение выбирается, если домен аутентификации должен быть доступен на порталах «Агрегатор администратора», «Агрегатор пользователя», «Агрегатор универсальный», и при подключении из компонента «Клиент»;

  • «Администраторы и персонал» - домен аутентификации будет доступен только для администраторов и персонала. Такое значение выбирается, если домен аутентификации должен быть доступен только на «Агрегаторе администратора» или «Агрегаторе универсальном»;

  • «Пользователи» - домен аутентификации будет доступен только для пользователей. Такое значение выбирается, если домен аутентификации должен быть доступен на «Агрегаторе пользователя», «Агрегаторе универсальном» или при подключении пользователя из компонента «Клиент»;

  • «Система» - домен аутентификации не будет доступен ни для пользователей, ни для администраторов и персонала

«Порталы»

Выбор порталов «Агрегатора», для которых будет доступен домен аутентификации. Если портал не выбран, то домен аутентификации не будет доступен для него.

В списке доступных значений отображаются все доступные узлы порталов с их полным доменным именем.

Администратору нужно выбирать узел в соответствии со значением, указанным в параметре «Субъекты».

Примеры:

  • если в параметре «Субъекты» указано «Пользователи», то в параметре «Порталы» должен быть выбран узел, соответствующий либо «Агрегатору пользователя», либо «Агрегатору универсальному»;

  • если в параметре «Субъекты» указано «Администраторы и персонал», в параметре «Порталы» должен быть выбран узел, соответствующий либо «Агрегатору администратора», либо «Агрегатору универсальному»;

  • если в параметре «Субъекты» указано «Все», то в параметре «Порталы» может быть выбран узел, соответствующий либо «Агрегатору пользователя», либо «Агрегатору администратора», либо «Агрегатору универсальному». Значение выбирается исходя из потребностей в разделении доменов аутентификации для того или иного субъекта.

При изменении списка узлов:

  • если узел удален, то он автоматически удалится из списка доступных значений для этого параметра. Уже назначенное значение удалится из свойств домена аутентификации;

  • если узел добавлен, то он автоматически добавится в список доступных значений для этого параметра, но не будет автоматически выбран для использования.

В случае, если в параметре «Порталы» был указан единственный узел, который затем был удален, то этот домен аутентификации не будет доступен ни в каком из порталов.

Для выбора всех порталов используется значение «Все»

«Client ID»

Уникальный идентификатор приложения, полученный от службы идентификации IdP.

Пример: «openid-test-cl»

«Client secret»

Ключ приложения, полученный от службы идентификации IdP.

Параметр должен быть пустым, если задан параметр «Приватный Ключ»

«Приватный ключ»

Путь к закрытому ключу, использующемуся для подписи JWT-токена.

Закрытый ключ, используемый в службе идентификации IdP, должен быть добавлен на сервер Termidesk. Для этого:

  • скопировать его в каталог /etc/opt/termidesk-vdi/;

  • назначить владельцем файла пользователя termidesk:

sudo chown termidesk:termidesk /etc/opt/termidesk-vdi/<путь_к_файлу>.key

Пример: «/etc/opt/termidesk-vdi/client.key»

«Authorization endpoint»

Параметр обязателен для заполнения.

URL-адрес авторизации службы идентификации IdP.

Пример: «http://192.0.2.2:8080/auth/realms/domain.local/protocol/openid-connect/auth»

«Logout endpoint»

Параметр обязателен для заполнения.

URL-адрес получения информации о завершении сессии пользователя от службы идентификации IdP.

Пример: «http://192.0.2.2:8080/auth/realms/domain.local/protocol/openid-connect/logout»

«Token endpoint»

Параметр обязателен для заполнения.

URL-адрес получения токена службы идентификации IdP.

Пример: «http://192.0.2.2:8080/auth/realms/domain.local/protocol/openid-connect/token»

«Userinfo endpoint»

Параметр обязателен для заполнения.

URL-адрес получения информации о пользователе от службы идентификации IdP.

Пример: «http://192.0.2.2:8080/auth/realms/domain.local/protocol/openid-connect/userinfo»

«JWKS URI»

URL-адрес получения сертификатов службы идентификации IdP.

Пример: «http://192.0.2.2:8080/auth/realms/domain.local/protocol/openid-connect/certs»

«Scope»

Параметр обязателен для заполнения.

Набор областей действия, поддерживаемый в службе идентификации IdP.

Области действия определяются спецификацией протокола OAuth 2.0.

Неполный список возможных значений (указываются через пробел):

  • «openid» (обязательное значение для OIDC) - запуск аутентификации с использованием OIDC;

  • «profile» - доступ к профилю пользователя;

  • «email» - доступ к адресу электронной почты пользователя;

  • «offline_access» - обновление токена доступа без необходимости повторной аутентификации;

  • «groups» - доступ к списку ролей пользователя.

Значение по умолчанию: «openid email profile groups».

Если нужно указать другой набор значений, следует убедиться, что он поддерживается используемой службой идентификации IdP

«Атрибут имени пользователя»

Параметр обязателен для заполнения.

Имя атрибута, в котором хранится имя пользователя (логин) в службе идентификации IdP.

Значение по умолчанию: «email»

«Проверка SSL»

Проверка использования SSL

«Динамическая проверка членства пользователя в группах»

Управление динамической проверкой вхождения пользователя в группу службы каталогов.

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

Особенности функционирования:

  • если пользователю уже назначено РМ, то проверяется вхождение пользователя в группу, указанную в свойствах фонда РМ. Проверка выполняется каждый раз при доступе к ресурсу. При этом если у пользователя отозваны права на доступ, то он:

    • либо не увидит скрытый ресурс в зависимости от настройки «Скрывать недоступные ресурсы»;

    • либо увидит, но не сможет получить доступ к нему;

    • либо получит доступ к назначенному РМ, если права доступа были назначены на другую группу, в которую входит пользователь и которая указана в свойствах фонда РМ;

    • либо получит доступ к назначенному РМ, если оно назначено на учетную запись пользователя напрямую.

Возможные значения:

  • «Режим совместимости 6.0» (по умолчанию) - при аутентификации пользователя происходит запрос к службе каталогов для проверки его вхождения в группы. После этого группы пользователя актуализируются в БД. При попытке получить ресурс из фонда доступ определяется на основе информации из БД (БД не обновляется);

  • «Периодическое обновление» - если пользователя нет в БД и он впервые аутентифицируется, то происходит запрос к службе каталогов для получения актуальной информации о нем. Если пользователь есть в БД, то информация берется из нее. Актуализация пользователей и групп для всех доменов аутентификации с этим значением выполняется периодической фоновой задачей раз в 24 часа;

  • «Динамическая проверка» - при аутентификации пользователя или получении ресурсов происходит запрос к службе каталогов для получения актуальной информации о нем. При обращении к службе каталогов информация о полученных группах кешируется во внутренней памяти. Время кеширования определяется системным параметром «Таймаут кеша хранения групп домена, с»

Добавление домена аутентификации RADIUS

Для добавления домена аутентификации RADIUS администратору Termidesk следует перейти «Системные параметры - Домены аутентификации», затем нажать экранную кнопку [Создать] и выбрать из выпадающего списка «RADIUS».

Затем необходимо заполнить данные, перечисленные в столбце «Параметр» следующей таблицы (см. таблицу Данные для добавления аутентификации Radius).

Таблица 6. Данные для добавления аутентификации Radius
Параметр Описание

«Название»

Текстовое наименование домена аутентификации

«Комментарий»

Информационное сообщение, используемое для описания назначения источника сведений о субъектах и их полномочиях

«Приоритет»

Преимущество использования домена аутентификации при проверке субъекта и его полномочий.

Порядок отображения доменов зависит от приоритета домена и его наименования:

  • чем ниже приоритет, тем выше домен в списке;

  • при наличии доменов с одинаковым приоритетом действует сортировка по алфавиту

«Метка»

Информационное поле, используемое для идентификации объекта во внутренней структуре данных Termidesk.

Начиная с Termidesk версии 5.1 поле может состоять из букв латинского алфавита, цифр, знаков «-» (дефис) и «_» (подчеркивание)

«Субъекты»

Выбор субъектов, для которых будет доступен домен аутентификации.

Возможные значения:

  • «Все» - домен аутентификации будет доступен как для пользователей, так и для администраторов и персонала. Такое значение выбирается, если домен аутентификации должен быть доступен на «Портале администратора», «Портале пользователя», «Портале универсальном», и при подключении из компонента «Клиент»;

  • «Администраторы и персонал» - домен аутентификации будет доступен только для администраторов и персонала. Такое значение выбирается, если домен аутентификации должен быть доступен только на «Портале администратора» или «Портале универсальном»;

  • «Пользователи» - домен аутентификации будет доступен только для пользователей. Такое значение выбирается, если домен аутентификации должен быть доступен на «Портале пользователя», «Портале универсальном» или при подключении пользователя из компонента «Клиент»;

  • «Системные» - домен аутентификации не будет доступен ни для пользователей, ни для администраторов и персонала

«Порталы»

Выбор порталов фермы Termidesk, для которых будет доступен домен аутентификации. Если портал не выбран, то домен аутентификации не будет доступен для него.

В списке доступных значений отображаются все узлы инфраструктуры с их полным доменным именем.

Администратору нужно выбирать узел в соответствии со значением, указанным в параметре «Субъекты».

Примеры:

  • если в параметре «Субъекты» указано «Пользователи», то в параметре «Порталы» должен быть выбран узел, соответствующий либо «Порталу пользователя», либо «Порталу универсальному»;

  • если в параметре «Субъекты» указано «Администраторы и персонал», в параметре «Порталы» должен быть выбран узел, соответствующий либо «Порталу администратора», либо «Порталу универсальному»;

  • если в параметре «Субъекты» указано «Все», то в параметре «Порталы» может быть выбран узел, соответствующий либо «Порталу пользователя», либо «Порталу администратора», либо «Порталу универсальному». Значение выбирается исходя из потребностей в разделении доменов аутентификации для того или иного субъекта.

При изменении списка узлов инфраструктуры:

  • если узел удален, то он автоматически удалится из списка доступных значений для этого параметра. Уже назначенное значение удалится из свойств домена аутентификации;

  • если узел добавлен, то он автоматически добавится в список доступных значений для этого параметра, но не будет автоматически выбран для использования.

В случае, если в параметре «Порталы» был указан единственный узел, который затем был удален из инфраструктуры, то этот домен аутентификации не будет доступен ни в каком из порталов.

Для выбора всех порталов используется значение «Все»

«RADIUS сервер»

IP-адрес или доменное имя ресурса, являющегося источником сведений о субъектах и их полномочиях (сервер RADIUS)

Если осуществляется подключение к серверу NPS (Network Policy Server), то доменное имя ресурса нужно указывать заглавными символами.

«Аутентификационный порт»

Порт для обработки запросов на аутентификацию

«Секрет»

Набор символов (пароль), подтверждающий подключение к серверу RADIUS

«NAS-Identifier»

Идентификатор фермы «Агрегатора», используемый при отправке запросов на сервер RADIUS.

Значение по умолчанию: «termidesk-server»

«Время ожидания соединения, с»

Максимальное время ожидания (в секундах) для установки соединения

«Регистрозависимость»

Учитывать регистр символов в имени пользователя при аутентификации.

Активация параметра позволяет обрабатывать имена пользователей с отличающимся регистром как разные учетные записи. При этом выполняется создание новых учетных записей в интерфейсе Termidesk, а каждому пользователю может быть назначено отдельное РМ.

Отключение параметра позволяет обрабатывать имена пользователей с отличающимся регистром как одну учетную запись. При этом создание новых учетных записей в интерфейсе Termidesk не выполняется, а пользователь подключается к одному и тому же РМ.

Возможные значения:

  • «Да» - регистр символов учитывается;

  • «Нет» (по умолчанию) - регистр символов не учитывается

«Использовать OTP»

Использовать при аутентификации пользователя OTP - механизм, позволяющий применять одноразовые пароли для дополнительной аутентификации.

Сервер RADIUS должен быть настроен на аутентификацию пользователей с использованием OTP.

Возможные значения:

  • «Да» - использовать механизм;

  • «Нет» (по умолчанию) - не использовать механизм

«Режим аутентификации»

Выбор режима, который будет использован при аутентификации пользователя.

Для работы функционала нужно активировать параметр «Использовать OTP».

На сервере RADIUS должен быть настроен соответствующий режим аутентификации (примеры настроек приведены в подразделе интеграции с системами сайта документации Termidesk: Примеры параметров конфигурации сервера RADIUS для работы в различных режимах аутентификации).

Возможные значения:

  • «Одноэтапный (только Access-Request)» (по умолчанию) - пароль и OTP пользователя передаются для проверки одновременно. Проверка учетных данных выполняется за один этап аутентификации;

  • «Многоэтапный (Access-Request + Access-Challenge)» - пароль и OTP пользователя передаются для проверки последовательно. Проверка учетных данных выполняется за несколько этапов аутентификации

«Динамическая проверка членства пользователя в группах»

Управление динамической проверкой вхождения пользователя в группу службы каталогов.

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

Особенности функционирования:

  • если пользователю уже назначено РМ, то проверяется вхождение пользователя в группу, указанную в свойствах фонда РМ. Проверка выполняется каждый раз при доступе к ресурсу. При этом если у пользователя отозваны права на доступ, то он:

    • либо не увидит скрытый ресурс в зависимости от настройки «Скрывать недоступные ресурсы»;

    • либо увидит, но не сможет получить доступ к нему;

    • либо получит доступ к назначенному РМ, если права доступа были назначены на другую группу, в которую входит пользователь и которая указана в свойствах фонда РМ;

    • либо получит доступ к назначенному РМ, если оно назначено на учетную запись пользователя напрямую.

Возможные значения:

  • «Режим совместимости 6.0» (по умолчанию) - при аутентификации пользователя происходит запрос к службе каталогов для проверки его вхождения в группы. После этого группы пользователя актуализируются в БД. При попытке получить ресурс из фонда доступ определяется на основе информации из БД (БД не обновляется);

  • «Периодическое обновление» - если пользователя нет в БД и он впервые аутентифицируется, то происходит запрос к службе каталогов для получения актуальной информации о нем. Если пользователь есть в БД, то информация берется из нее. Актуализация пользователей и групп для всех доменов аутентификации с этим значением выполняется периодической фоновой задачей раз в 24 часа;

  • «Динамическая проверка» - при аутентификации пользователя или получении ресурсов происходит запрос к службе каталогов для получения актуальной информации о нем. При обращении к службе каталогов информация о полученных группах кешируется во внутренней памяти. Время кеширования определяется системным параметром «Таймаут кеша хранения групп домена,с»

Валидация заданных параметров экранной кнопкой [Тест] проверяет корректность заданного имени сервера (возможность получить IP-адрес, используя DNS), доступность сервера (корректный порт, работоспособность сервера RADIUS).

После добавления домена аутентификации RADIUS необходимо перейти в созданный объект и указать актуальный список групп, пользователи которых могут производить вход в Termidesk.

При дальнейшей эксплуатации сервер Termidesk, обрабатывая запрос на аутентификацию, получает актуальный список групп пользователя и сравнивает со своей конфигурацией. Если ни одного совпадения не обнаружено, то пользователю будет отказано в доступе.

Конфигурация сервера RADIUS должна учитывать передачу списка групп пользователя в атрибуте с ключом 25 (Class) в ответе со статусом авторизации.

Для корректного получения списка групп на Termidesk сервер RADIUS может быть настроен следующим образом:

Пример настройки приведен для сервера freeRADIUS.
  • файл /etc/freeradius/3.0/mods-enabled/ldap должен содержать конструкцию вида:

ldap {
...
  update {
     ...
     reply:memberOf                  += 'memberOf'
  }
...
}
  • в файл /etc/freeradius/3.0/dictionary необходимо добавить строку:

ATTRIBUTE       memberOf                3001    string
  • в файле /etc/freeradius/3.0/sites-enabled/default необходимо найти секцию post-auth и добавить регулярное выражение, фильтрующее название группы из получаемых от сервера атрибутов:

foreach &reply:memberOf {
       if ("%{Foreach-Variable-0}" =~ /cn=([^,=]+)/i)
           }
  • в файле /etc/freeradius/3.0/mods-enabled/exec указать для параметра wait значение yes:

wait = yes

Для корректной работы автоматического входа пользователя (SSO) нужно настроить конфигурацию сервера RADIUS:

  • скорректировать файл /etc/freeradius/3.0/mods-available/ldap, добавив фильтр в секции user:

user {
                base_dn = "${..base_dn}"
...
                # Фильтр: поиск по sAMAccountName ИЛИ по userPrincipalName (UPN)
                filter = "(|(sAMAccountName=%{%{Stripped-User-Name}:-%{User-Name}})(userPrincipalName=%{User-Name}))"
...
}
  • остальные параметры настроить аналогично примеру выше.