Настройка RBAC Proto Observability Platform
На этой странице:
Описание
В Proto Observability Platform реализована модель роллевого управления доступа (RBAC). Пользователи платформы деляться на роли со следующими правами:
| Действия | Администратор | Пользователь | 
|---|---|---|
| Добавление пользователей | ✅ | ❌ | 
| Удаление пользователей | ✅ | ❌ | 
| Изменение роли пользователя | ✅ | ❌ | 
| Изменение (сброс) пароля пользователя | ✅ | ❌ | 
| Просмотр, чтение основных данных | ✅ | ✅ | 
| Создание кастомных дашбордов | ✅ | ❌ | 
| Редактирование кастомных дашбордов | ✅ | ❌ | 
| Удаление кастомных дашбордов | ✅ | ❌ | 
Управление пользователями
Добавление пользователя
- Зайдите в интерфейс Proto Observability Platform используя встроенную учетную запись администратора
 
- Перейдите в раздел “Настройки”
 
- Кликните на кнопку “+ Пользователь”
 
- Укажите данные пользователя, которого вы хотите добавить и кликните на кнопку “Добавить”. По указанному E-mail будет отправлено приглашение для входа в платформу.
Управление правами пользователя
- Перейдите в раздел “Настройки”
 
- В столбце “Операции” кликните на значок “карандаш” в строке пользователя, чью роль вы хотите изменить.
 
Сброс пароля пользователя
- Перейдите в раздел “Настройки”
 
- В столбце “Операции” кликните на значок “…” в строке пользователя, чей пароль вы хотите сбросить.
 
- Укажите временный пароль пользователя, который будет изменен при первом входе в платформу.
Настройка 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 совместимых систем может быть добавлена по запросу.
Обратите внимание
Перед изменением типа аутентификации, например, со встроенной на LDAP, необхоимо выполнить:
docker compose -f docker-compose-<version>.yaml stop proto-auth proto-postgresql proto-nginx
docker compose -f docker-compose-<version>.yaml rm proto-auth proto-postgresql proto-nginx
docker volume rm protoobp_postgres_data
Подготовка провайдера SSO
- 
В вашем LDAP каталоге cоздайте необходимые группы: - proto_obp_admin- группа пользователей, которые будут обладать правами “Администратор” в Proto OBP
- proto_obp_user- группа пользователей, которые будут обладать правами “Пользователь” в Proto OBP
 Необходимо создать в LDAP группы именно с такими именами, как указано выше. Расположение групп в каталоге может быть произвольным. 
- 
Добавьте необходимых пользователей в соответствующие группы. 
Создайте группы, на основании членства в которых будет производится отнесение пользователей в группы “пользователей” или “администраторов” в 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