Подключение RBAC Proto Observability Platform

Обновлено 07.09.2026

На этой странице:

Описание

В Proto Observability Platform реализована модель роллевого управления доступа (RBAC). Пользователи платформы деляться на роли со следующими правами:

ДействияАдминистраторПользователь
Добавление пользователей✅❌
Удаление пользователей✅❌
Изменение роли пользователя✅❌
Изменение (сброс) пароля пользователя✅❌
Просмотр, чтение основных данных✅✅
Создание кастомных дашбордов✅❌
Редактирование кастомных дашбордов✅❌
Удаление кастомных дашбордов✅❌

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

Добавление пользователя

  1. Зайдите в интерфейс Proto Observability Platform используя встроенную учетную запись администратора ../images/rbac-01.png
  2. Перейдите в раздел “Настройки” ../images/rbac-02.png
  3. Кликните на кнопку “+ Пользователь” ../images/rbac-03.png
  4. Укажите данные пользователя, которого вы хотите добавить и кликните на кнопку “Добавить”. По указанному E-mail будет отправлено приглашение для входа в платформу.

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

  1. Перейдите в раздел “Настройки” ../images/rbac-02.png
  2. В столбце “Операции” кликните на значок “карандаш” в строке пользователя, чью роль вы хотите изменить. ../images/rbac-04.png

Сброс пароля пользователя

  1. Перейдите в раздел “Настройки” ../images/rbac-02.png
  2. В столбце “Операции” кликните на значок “…” в строке пользователя, чей пароль вы хотите сбросить. ../images/rbac-05.png
  3. Укажите временный пароль пользователя, который будет изменен при первом входе в платформу.

Настройка SMTP

Данный шаг является опциональным на этапе пилотного тестирования – можно просто создать нужных пользователей через веб-интерфейс и сменить им пароль.

Для отправки email приглашений новым пользователям используется подключение к SMTP серверу.

На Proto Backend сервере в каталоге с docker-compose.yaml файлом в .env файле укажите следующее:

SMTP_HOST=smtp.my_company.net
SMTP_PORT=587
SMTP_AUTH=true
SMTP_USER=user
SMTP_PASSWORD=password
SMTP_FROM=protoobp@proto.group
SMTP_SSL=false
SMTP_STARTTLS=false

Где:

  • SMTP_HOST - адрес SMTP сервера
  • SMTP_PORT - порт SMTP сервера
  • SMTP_AUTH - использовать логи и пароль для авторизации на SMTP сервер ( true | false )
  • SMTP_USER - логин пользователя SMTP сервера
  • SMTP_PASSWORD - пароль пользователя SMTP сервера
  • SMTP_FROM - email адрес с которого будут приходить письма от Proto Observability Platform
  • SMTP_SSL - использовать SSL для подключения к SMTP серверу ( true | false )
  • SMTP_STARTTLS- использовать TLS для подключения к SMTP серверу ( true | false )

Настройка Single Sign On (SSO)

Proto Observability Platform поддерживает Single Sign On (SSO) для прозрачной аутентификации пользователей через вненшие системы – провайдеров SSO или провайдеров учетных записей.

На данный момент поддерживаются следующие провайдеры SSO:

  • LDAP каталоги (Active Directory, Open LDAP, Red Hat Directory и другие)
  • SSO по протоколу Open ID Connect (OIDC):
    • Keycloak
    • IdentityServer4

Поддержка других OIDC или SAML v.2.0 совместимых систем может быть добавлена по запросу.

Доверенные TLS сертификаты для внешних систем

Эта настройка актуальна для всех сценариев, где proto-auth обращается к внешним системам по TLS:

  • OIDC через Keycloak/IdentityServer4 (https://...)
  • LDAP при использовании LDAPS (ldaps://...) или StartTLS
  • SMTP при использовании TLS/SSL

Если в логах proto-auth появляется ошибка вида:

SSLHandshakeException / PKIX path building failed / unable to find valid certification path to requested target

это означает, что контейнер proto-auth не доверяет сертификату удаленного сервера (или его CA-цепочке).

Для решения:

  1. Создайте каталог truststores рядом с docker-compose-<version>.yaml.
  2. Добавьте в него сертификаты УЦ внешних систем (root/intermediate) в формате .pem (или .p12/.pfx/.pkcs12).
  3. У сервиса proto-auth добавьте:
  proto-auth:
    environment:
      ...
      KC_TRUSTSTORE_PATHS: /opt/keycloak/conf/truststores
      KC_TLS_HOSTNAME_VERIFIER: DEFAULT
    volumes:
      ...
      - ./truststores:/opt/keycloak/conf/truststores:ro

Рекомендации:

  • Добавляйте сертификаты УЦ (root/intermediate), а не только leaf-сертификат сервера.
  • Для production используйте KC_TLS_HOSTNAME_VERIFIER=DEFAULT.
  • Значение ANY допустимо только для кратковременной диагностики.
  • Для LDAP secure-соединений проверка hostname должна быть корректной на стороне сертификата LDAP сервера.

Подготовка провайдера SSO

  1. В вашем LDAP каталоге cоздайте необходимые группы:

    • proto_obp_admin - группа пользователей, которые будут обладать правами “Администратор” в Proto OBP
    • proto_obp_user - группа пользователей, которые будут обладать правами “Пользователь” в Proto OBP

    Необходимо создать в LDAP группы именно с такими именами, как указано выше. Расположение групп в каталоге может быть произвольным.

  2. Добавьте необходимых пользователей в соответствующие группы.

Создайте группы, на основании членства в которых будет производится отнесение пользователей в группы “пользователей” или “администраторов” в Proto Observability Platform. Добавьте пользователей в соответствующие группы.

Создайте роли, на основании членства в которых будет производится отнесение пользователей в группы “пользователей” или “администраторов” в Proto Observability Platform. Назначьте соответствующие роли пользователям.

Изменения в файле .env

На Proto Backend сервере в каталоге с docker-compose.yaml файлом в .env файле укажите используемый тип провайдера SSO:

AUTH_TYPE=LDAP
AUTH_TYPE=OIDC
AUTH_TYPE=OIDC-IS4

Изменения в файле настроек SSO

На Proto Backend сервере в каталоге с docker-compose-<version>.yaml создайте или измените файл с настройками SSO для выбранного провайдера:

.env_ldap:

# Тип LDAP-каталога ( `ad` — Active Directory | `rhds` — Red Hat Directory Server / FreeIPA | `edir` — Novell eDirectory | `tivoli` — IBM Tivoli | `other` — прочие)
LDAP_VENDOR="ad"
# URL адрес LDAP сервера ( `ldap://...` — обычное соединение или StartTLS; `ldaps://...` — TLS-туннель на порту 636 )
LDAP_CONNECTION_URL="ldap://ldap.my_company.net"
# Использовать StartTLS для подключения к LDAP серверу ( `true` | `false` ). Несовместимо с `ldaps://`
LDAP_START_TLS="false"
# Тип авторизации в LDAP ( `simple` — по логину и паролю | `none` — анонимное подключение )
LDAP_AUTH_TYPE="simple"
# Учетная запись для авторизации в LDAP (не требуется при `LDAP_AUTH_TYPE="none"`)
LDAP_BIND_DN="uid=admin,cn=users,cn=accounts,dc=my,dc=company"
# Пароль учетной записи для авторизации в LDAP (не требуется при `LDAP_AUTH_TYPE="none"`)
LDAP_BIND_PASSWORD="secret"
# Полный DN расположения пользователей
LDAP_USERS_DN="cn=users,cn=accounts,dc=my,dc=company"
# Глубина поиска пользователей и групп ( `1` — только указанный уровень | `2` — указанный уровень и все поддерево )
LDAP_SEARCH_SCOPE="2"
# Дополнительный фильтр для поиска пользователей, входящих в группы `proto_obp_admin` и `proto_obp_user`
LDAP_USER_SEARCH_FILTER=(|(memberOf=cn=proto_obp_user,cn=groups,cn=accounts,dc=my,dc=company)(memberOf=cn=proto_obp_admin,cn=groups,cn=accounts,dc=my,dc=company))
# Название атрибута пользователя, содержащего уникальный идентификатор (UUID). Типовые значения: `objectGUID` — для AD; `ipauniqueid` — для FreeIPA; `entryUUID` — для OpenLDAP
LDAP_UUID_ATTRIBUTE="ipauniqueid"
# Название атрибута пользователя, содержащего логин. Типовые значения: `sAMAccountName` — для AD; `uid` — для OpenLDAP / FreeIPA
LDAP_USERNAME_ATTRIBUTE="sAMAccountName"
# Список objectClass'ов пользователей через запятую. Типовые значения: `person,organizationalPerson,user` — для AD; `inetOrgPerson,organizationalPerson` — для OpenLDAP / FreeIPA
LDAP_USER_OBJECT="person,organizationalPerson,user"
# Атрибут, используемый в качестве RDN пользователя. Типовые значения: `cn` — для AD; `uid` — для OpenLDAP / FreeIPA
LDAP_RDN_ATTRIBUTE="cn"
# Полный DN расположения групп пользователей
LDAP_GROUPS_DN="cn=groups,cn=accounts,dc=my,dc=company"
# Дополнительный фильтр для исключения всех групп, кроме `proto_obp_admin` и `proto_obp_user`
LDAP_GROUPS_FILTER="(&(objectclass=group)(|(cn=proto_obp_user)(cn=proto_obp_admin)))"
# objectClass группы. Типовые значения: `group` — для AD; `groupOfNames` или `groupOfUniqueNames` — для OpenLDAP / FreeIPA
LDAP_GROUP_OBJECT="group"
# Атрибут группы, содержащий идентификаторы её участников. Типовые значения: `member` — для AD и большинства OpenLDAP-схем; `memberUid` — для `posixGroup`
LDAP_MEMBER_ATTRIBUTE="member"
# Стратегия получения групп пользователя:
#   `LOAD_GROUPS_BY_MEMBER_ATTRIBUTE` — через атрибут группы `LDAP_MEMBER_ATTRIBUTE` (универсальный вариант, работает везде)
#   `GET_GROUPS_FROM_USER_MEMBEROF_ATTRIBUTE` — через атрибут пользователя `memberOf` (быстрее, подходит для AD и серверов с поддержкой `memberOf`-overlay)
LDAP_GROUPS_STRATEGY="LOAD_GROUPS_BY_MEMBER_ATTRIBUTE"

.env_oidc:

# имя подключения отображаемое на странице входа в интерфейс Proto Observability Plaftorm
OIDC_NAME=my_oidc
# URL адрес Keycloak сервера
KEYCLOAK_URL=http://oidc_url:86
# используемый realm
KEYCLOAK_REALM=my_realm
# путь до auth (для старых инсталляций Keycloak), по умолчанию пустой
# KEYCLOAK_AUTH_PATH=/auth
# ID клиента Keyloack
KEYCLOAK_CLIENT_ID=my_cliend
# secret клиента Keycloak
KEYCLOAK_CLIENT_SECRET=cliend_secret
# ClientScope возвращающий имя группы
KEYCLOAK_GROUP_USER_KEY=userGroups
# имя группы с правами "пользователь"
KEYCLOAK_GROUP_USER_VALUE=user
# ClientScope возвращающий имя группы
KEYCLOAK_GROUP_ADMIN_KEY=userGroups
# имя группы правами "администратор"
KEYCLOAK_GROUP_ADMIN_VALUE=admin

.env_oidc_is4:

# имя SSO подключения, отображаемое на странице входа в интерфейс Proto Observability Plaftorm
OIDC_NAME=is4-dev
# адрес - основной URL IS4 сервера 
IS4_BASE_URL=https://identity-server-is4.test.local
# ID клиента - должно быть указано на стороне IS4
IS4_CLIENT_ID=proto_obp
# секрет клиента - должен быть указан на стороне IS4
IS4_CLIENT_SECRET=some-strong-secret
# ClientScope возвращающий имя группы или роли - должно быть настроено на стороне IS4
IS4_GROUP_USER_KEY=role
# имя роли или группы пользователей - должно быть настроено на стороне IS4
IS4_GROUP_USER_VALUE=proto_obp_user
# ClientScope возвращающий имя группы или роли - должно быть настроено на стороне IS4
IS4_GROUP_ADMIN_KEY=role
# имя роли или группы администраторов - должно быть настроено на стороне IS4
IS4_GROUP_ADMIN_VALUE=proto_obp_admin

Изменения в файле docker-compose-<version>.yaml

В файле docker-compose-<version>.yaml у сервиса proto-auth добавьте volume с файлом настроек выбранного провайдера SSO:

  proto-auth:
    volumes:
      ...
      - ./.env_ldap:/usr/share/java/keycloak/.env_ldap
  proto-auth:
    volumes:
      ...
      - ./.env_oidc:/usr/share/java/keycloak/.env_oidc
  proto-auth:
    volumes:
      ...
      - ./.env_oidc_is4:/usr/share/java/keycloak/.env_oidc_is4

Запуск компонентов

docker compose -f docker-compose-<version>.yaml up -d