Перейти к основному содержимому
Руководство администратора
How To статьи
Установка и настройка
Компоненты
Руководство пользователя
Начало работы

Управление ролями и пользователями

Общее описание

Аутентификация и авторизация пользователей в ESB реализована с использованием платформы для идентификации и управления доступом Keycloak, где конфигурируются все роли и учетные записи пользователей ESB.

Интегрированные программные компоненты, обеспечивающие контроль доступа, включают:

  • Клиентское приложение – UI Frontend + Nginx
  • Бэкенд-сервис – UI Backend
  • Провайдер идентификации – Keycloak

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

Все операции с пользователями, ролями и группами ESB выполняются в пространстве realm с названием esb.

Realm в Keycloak - это изолированное пространство, в котором конфигурируются пользователи, клиентские приложения, роли и группы. Это позволяет разделять зоны аутентификации и авторизации. Realm пространство master в Keycloak является системным, оно предназначено только для администрирования Keycloak.

В данном разделе представлено краткое описание возможностей интерфейса Keycloak применительно к настройкам безопасности ESB. Полная документация платформы Keycloak опубликована на официальном сайте www.keycloak.org.

Регистрация пользователя

Для того чтобы зарегистрировать пользователя ESB в Keycloak, необходимо выполнить действия, описанные ниже.

Настройки в ESB

  1. Создать в интерфейсе ESB домены, к которым пользователь должен иметь доступ, или убедиться в том, что они есть. При создании в ESB домена автоматически создается группа в Keycloak, в которую можно будет добавить пользователя.

Настройки в Keycloak

  1. Зарегистрировать пользователя. Подробная информация приведена в разделе Пользователи ESB в Keycloak.
  2. Добавить пользователя в группы, соответствующие доменам, с которыми пользователь будет работать.
  3. Назначить пользователю роли. Подробная информация приведена в разделе Роли ESB в Keycloak.

Настройки компонентов

Переменные окружения

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

  • AUTHORIZATION_TOKEN_TTL_SECONDS – время жизни токена, который сохраняется в кеш. Значение по умолчанию – 300.
  • AUTHORIZATION_INTERNAL_TOKEN_KEY_WORD – проверочная строка, с помощью которой проверяется токен.
  • AUTHORIZATION_INTROSPECTION_ENDPOINT – путь до Keycloak для проверки токена, т.е. keycloak_introspection_endpoint.
  • AUTHORIZATION_USER_INFO_ENDPOINT – путь до Keycloak для перенаправления на профиль пользователя, т.е. keycloak_userinfo_endpoint.
  • AUTHORIZATION_END_SESSION_ENDPOINT – путь до Keycloak для завершения сессии, т.е. keycloak_end_session_endpoint.
  • KEYCLOAK_BASE_URL – путь установки Keycloak.
  • REALM – имя пространства realm для Keycloak. Значение по умолчанию: esb.
  • CLIENT_ID – идентификатор клиента для Keycloak. Значение по умолчанию: ui-backend-admin.
  • CLIENT_SECRET – клиентский секрет для доступа в Keycloak.

Настройки сервера Nginx

  1. Все запросы к внутренним API выполняются с проверкой прав доступа роли (realm_role) и доступности домена (принадлежности пользователя к определенной группе в Keycloak).
  2. На стороне Nginx дополнительно настроены следующие конечные точки:
    • URL {/auth/login} - переход на {realm_authorization_endpoint}`
    • URL {/api/auth/token} - переход на {realm_token_endpoint}
    • URL {/auth/userinfo} - переход на {realm_userinfo_endpoint}
    • URL {/auth/logout} - переход на {realm_end_session_endpoint}
    • URl {/auth/admin-console} - переход на KEYCLOAK_BASE_URL/admin/REALM/console

Настройки Keycloak

В Keycloak создаются следующие сущности:

  1. Новое пространство realm: esb
    Настройки realm пространства вы можете просматривать на странице Настройки realm в интерфейсе Keycloak.
  2. В пространстве realm создаются роли:
    • Admin – для администраторов
    • Editor – для пользователей с правами редактирования
    • Viewer – для пользователей с правами только на просмотр.
  3. Клиенты realm - приложения, которые будут обращаться к Keycloak, например, frontend-public, esb-backend.

Вход администратора в систему

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

Форма авторизации пользователя

На экране отобразится форма авторизации администратора.

Форма авторизации администратора

После успешной авторизации администратора выполняется переход в Keycloak.

На странице Управление realm выберите esb, щелкнув по названию.

Preview

Выбор пространства realm

Переход к информации о пользователе из приложения ESB

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

Роли ESB в Keycloak

Роли, зарегистрированные для ESB, отображаются В Keycloak на странице Роли realm.

Preview

Роли ESB в Keycloak

В realm пространстве esb для управлением доступом к приложению ESB предназначены три предсозданные роли:

  • Admin – присвоены все права доступа
  • Editor – присвоены права на просмотр/редактирование/ограниченное удаление
  • Viewer – присвоены права только на просмотр.

Помимо этих ролей, в пространстве realm существуют системные роли, которые предназначены для работы внутренних сервисов Keycloak - аутентификация, конфигруирование параметров профиля и т.д.
Эти роли назначаются в Keycloak автоматически.

Важно!

Системные роли нельзя назначать пользователям ESB. Они назначаются автоматически и их нельзя использовать при настройке профилей пользователей.

Системные роли Keycloak:

  • default-roles-esb - роль служит контейнером для ролей по умолчанию как realm, так и клиента. Эту роль нельзя удалить.
  • offline_access - роль для предоставления автономных токенов
  • uma_authorization - роль для авторизации, управления доступом к ресурсам.

Пользователи ESB в Keycloak

Пользователи ESB регистрируются администратором в Keycloak на странице Пользователи.

Preview

Пользователи ESB

Чтобы просмотреть или отредактировать роль, щелкните мышью на ее имени.

Чтобы создать новую учетную запись, нажмите Добавить пользователя.

Preview

Создание пользователя в Keycloak

Имя пользователя Username всегда сохранятся строчными буквами независимо от регистра на котором оно введено. После сохранения учетной записи пользователя этот параметр становится нередактируемым. Другие параметры можно изменять в режиме редактирования, но имя пользователя останется неизменным.
Вы можете присоединить пользователя к группам с помощью кнопки Присоединиться к группам. Группы в Keycloak соответствуют доменам в ESB – при создании домена в ESB автоматически создается соответствующая группа в Keycloak. Во всплывающем окне вы можете выбрать нужные домены из тех, к которым пользователь должен иметь доступ.

Важно!

При переименовании или удалении группы в Keycloak внесенные изменения не переносятся в ESB. Внесение таких изменений в настройки Keycloak может привести к потере доступа пользователей к существующим доменам.

Preview

Выбор групп для пользователя (доменов)

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

После сохранения пользователя вы можете присвоить ему роли в системе на вкладке Сопоставление ролей в профиле пользователя. Роль default-roles-esb присваивается новому пользователю автоматически.

Preview

Назначение ролей пользователю ESB

Доступ ролей к функциям ESB

Доступ пользователей к определяется принадлежностью пользователя к группам в Keycloak. У администратора есть доступ ко всем доменам.

Таблица составлена с учетом того, что пользователь имеет доступ к домену и, соответственно, к потокам, размещенным в этом домене.

Доступные функции

Функция / РольViewer (просмотр)Editor (редактор)Admin (администратор)
Управление доменами и потоками
Просмотр таблицы доменов и потоковДоступноДоступноДоступно
Поиск в таблице доменов и потоковДоступноДоступноДоступно
Создание доменаНедоступноНедоступноДоступно
Создание потокаНедоступноДоступноДоступно
Редактирование доменаНедоступноНедоступноДоступно
Редактирование потокаНедоступноДоступноДоступно
Удаление доменаНедоступноНедоступноДоступно
Удаление потокаНедоступноНедоступноДоступно
Редактор потоков
Открытие редактора для просмотра потокаДоступноДоступноДоступно
Просмотр палитрыДоступноДоступноДоступно
Поиск в палитреДоступноДоступноДоступно
Переключение код\схемаДоступноДоступноДоступно
Переключение масштабирования и центровкиДоступноДоступноДоступно
Просмотр деталей добавленного блокаДоступноДоступноДоступно
Добавление блока из палитрыНедоступноДоступноДоступно
Перетаскивание блока в области редактораНедоступноДоступноДоступно
Изменение свойств блока (в т.ч. переименование)НедоступноДоступноДоступно
Удаление блока из области редактораНедоступноДоступноДоступно
Активация потокаНедоступноДоступноДоступно
Откат измененийНедоступноДоступноДоступно
Деактивация потокаНедоступноДоступноДоступно
Создание системы (для подключения)НедоступноДоступноДоступно
Выбор системы (для подключения)НедоступноДоступноДоступно
Создание подключенияНедоступноДоступноДоступно
Выбор подключенияНедоступноДоступноДоступно
Управление версиями
Просмотр списка версийДоступноДоступноДоступно
Сохранение версииНедоступноДоступноДоступно
Сравнение версийДоступноДоступноДоступно
Удаление версийНедоступноНедоступноДоступно
Открытие версии из списка в редактореДоступноДоступноДоступно
Управление файлами
Просмотр деталей добавленных файловДоступноДоступноДоступно
Скачивание файла через браузерНедоступноДоступноДоступно
Добавление файловНедоступноДоступноДоступно
Редактирование файловНедоступноДоступноДоступно
Удаление файловНедоступноНедоступноДоступно
Управление соединениями
Просмотр деталей добавленных систем и соединенийНедоступноДоступноДоступно
Просмотр конфиденциальных параметров систем и соединенийНедоступноДоступноДоступно
Список доменов, в которых доступна система и соединениеДоступно
Примечание:
В списке отображаются только те домены, к которым настроен доступ в Keycloak
Доступно
Примечание:
В списке отображаются только те домены, к которым настроен доступ в Keycloak
Доступно
Добавление систем и соединенийНедоступноДоступноДоступно
Редактирование систем и соединенийНедоступноНедоступноДоступно
Удаление систем и соединенийНедоступноНедоступноДоступно