Настройка RBAC Proto Observability Platform

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

Описание

В 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 совместимых систем может быть добавлена по запросу.

Подготовка провайдера 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_VENDOR="ad"
#  URL адрес LDAP сервера
LDAP_CONNECTION_URL="ldap://ldap.my_company.net"
# Использовать TLS для подключения к LDAP серверу ( `true` | `false` )
LDAP_START_TLS="false"
# Авторизация в LDAP ( `simple` | `none` )
LDAP_AUTH_TYPE="simple"
# Учетная запись для авторизации в LDAP
LDAP_BIND_DN="uid=admin,cn=users,cn=accounts,dc=my,dc=company"
# Пароль учетной записи для авторизации в LDAP
LDAP_BIND_PASSWORD="secret"
# Полный DN распоположения пользователей
LDAP_USERS_DN="cn=users,cn=accounts,dc=my,dc=company"
# Дополнительный фильтр для поиска пользователей, входящих в группы `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
LDAP_UUID_ATTRIBUTE="ipauniqueid"
# Полный 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)))"

.env_oidc:

# имя подключения отображаемое на странице входа в интерфейс Proto Observability Plaftorm
OIDC_NAME=my_oidc
# URL адрес Keycloak сервера
KEYCLOAK_URL=http://oidc_url:86
# используемый realm
KEYCLOAK_REALM=my_realm
# 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