Архитектура

Типы развертывания
  • «Standalone» — тип развертывания, который не требует высокой доступности и отказоустойчивости системы. Такой режим подходит для тестовой инсталляции.

  • «High Availability» — тип развертывания, который требует высокую доступность брокеров для обеспечения непрерывной работы системы. Если один из брокеров выйдет из строя, другие смогут взять на себя его функции и обеспечить бесперебойное обслуживание запросов пользователей. Такой режим подходит для продуктивной инсталляции.

Типы пользователей
  • Внутренние пользователи — пользователи, которые подключаются к СТД «Термит» из внутренней (корпоративной) сети или через корпоративное VPN-решение.

  • Внешние пользователи — пользователи, которые подключаются к СТД «Термит» из внешней (вне корпоративного сегмента) сети и не используют корпоративное VPN-решение.

В этом разделе представлены:

  • базовая архитектура;

  • архитектура с внутренними пользователями;

  • архитектура с внутренними и внешними пользователями.

Базовая архитектура

Ниже представлена схема базовой архитектуры в режиме «Standalone»: с одним брокером, без балансировщика нагрузки и шлюза.

schm  arch1

Описание работы СТД «Термит»

Аутентификация
  1. Пользователь запускает десктоп-клиент. Далее вводит адрес брокера.

  2. Пользователь вводит имя доменной учетной записи и пароль.

  3. Брокер проверяет эти данные на сервере LDAP.

  4. Брокер возвращает десктоп-клиенту токен для аутентификации в REST API.

Получение списка приложений
  1. Десктоп-клиент запрашивает у брокера список приложений, доступных пользователю. Брокер проверяет права пользователя (сравнивая его группы с теми, которые назначены на приложения) и отдает список доступных приложений.

Старт сессии
  1. Пользователь запускает нужное приложение или рабочий стол. Десктоп-клиент отправляет брокеру запрос на старт новой терминальной сессии.

  2. Брокер выбирает терминальный сервер, который может обслужить запрос.

  3. Брокер создает сессию в базе данных (БД) и отдает десктоп-клиенту профиль подключения, включающий в себя адрес шлюза удаленного доступа, адрес терминального сервера, порт подключения, команду для запуска и другие параметры.

  4. Десктоп-клиент стартует сессию на терминальном сервере. В процессе старта десктоп-клиент запрашивает у пользователя имя учетной записи и пароль и отправляет их терминальному серверу. Терминальный сервер проводит аутентификацию пользователя. Десктоп-клиент настраивает перенаправление звука, файловой системы, печати и запускает приложение/рабочий стол в сессии.

  5. На стороне терминального сервера агент завершает создание сессии: уведомляет брокер о том, что создана сессия с X2Go/RDP ID. Далее происходит синхронизация этого ID c ID из БД.

  6. Сессия готова к работе.

Архитектура с внутренними пользователями

Ниже представлена схема архитектуры в режиме «High Availability» с внутренними пользователями, несколькими брокерами, балансировщиком нагрузки и отсутствует шлюз удаленного доступа.

schm  internal client

Описание работы СТД «Термит»

Аутентификация
  1. Пользователь запускает десктоп-клиент и вводит адрес балансировщика нагрузки. Балансировщик нагрузки определяет, какой брокер будет обслуживать этого пользователя, и в дальнейшем перенаправляет все запросы на выбранный брокер.

  2. Пользователь вводит имя доменной учетной записи и пароль.

  3. Брокер проверяет эти данные на сервере LDAP.

  4. Брокер возвращает десктоп-клиенту токен для аутентификации в REST API.

Получение списка приложений
  1. Десктоп-клиент запрашивает у брокера список приложений, доступных пользователю. Брокер проверяет права пользователя, сравнивая его группы с теми, которые назначены на приложения, и отдает список доступных приложений.

Старт сессии
  1. Пользователь запускает нужное приложение или рабочий стол. Десктоп-клиент отправляет брокеру запрос на старт новой терминальной сессии.

  2. Брокер выбирает терминальный сервер, который может обслужить запрос.

  3. Брокер создает сессию в БД и отдает десктоп-клиенту профиль подключения, включающий в себя адрес шлюза удаленного доступа, адрес терминального сервера, порт подключения, команду для запуска и другие параметры.

  4. Десктоп-клиент начинает сессию на терминальном сервере. В процессе старта десктоп-клиент запрашивает у пользователя имя учетной записи и пароль и отправляет их терминальному серверу. Терминальный сервер проводит аутентификацию пользователя. Десктоп-клиент настраивает перенаправление звука, файловой системы, печати и запускает приложение/рабочий стол в сессии.

  5. На стороне терминального сервера агент завершает создание сессии: уведомляет брокер о том, что создана сессия с X2Go/RDP ID. Далее происходит синхронизация этого ID c ID из БД.

  6. Сессия готова к работе.

Архитектура с внешними и внутренними пользователями

Ниже представлена схема архитектуры в режиме «High Availability» с внешними и внутренними пользователями, несколькими брокерами, балансировщиком нагрузки и шлюзом удаленного доступа.

schm  external client

Описание работы СТД «Термит»

  1. Пользователь запускает десктоп-клиент и вводит адрес балансировщика нагрузки. Балансировщик нагрузки определяет, какой брокер будет обслуживать этого пользователя, и в дальнейшем перенаправляет все запросы на выбранный брокер.

  2. Пользователь указывает адрес брокера. Открывается страница для ввода логина и пароля.

  3. Пользователь вводит имя доменной учетной записи и пароль.

  4. Сервис аутентификации проверяет введенные данные на сервере LDAP и возвращает токен.

  5. Брокер и десктоп-клиент используют этот токен для взаимодействия по REST API.

  6. Десктоп-клиент запрашивает у брокера список приложений, доступных пользователю. Брокер проверяет права пользователя (сравнивая его группы с теми, которые назначены на приложения) и отдает список доступных приложений.

  7. Пользователь запускает нужное приложение или рабочий стол. Десктоп-клиент отправляет брокеру запрос на старт новой терминальной сессии.

  8. Брокер выбирает терминальные серверы на основе метрик, который предоставляет сервис мониторинга Prometheus.

  9. Брокер создает сессию в БД и отдает десктоп-клиенту профиль подключения, включающий в себя адрес шлюза удаленного доступа, адрес терминального сервера, порт подключения, команду для запуска и другие параметры.

  10. Пользователь подключается к шлюзу удаленного доступа и проходит на нем аутентификацию.

  11. Клиент X2Go/RDP с помощью шлюза удаленного доступа начинает сессию на терминальном сервере. В процессе старта клиент X2Go/RDP запрашивает у десктоп-клиента имя учетной записи и пароль и отправляет их терминальному серверу. Терминальный сервер проводит аутентификацию пользователя. Клиент X2Go/RDP настраивает перенаправление звука, файловой системы, печати и запускает приложение в сессии.

  12. На стороне терминального сервера агент Термит завершает создание сессии: уведомляет брокер о том, что создана сессия с X2Go/RDP ID. Далее происходит синхронизация этого сессии с брокером.

  13. Сессия готова к работе.