Настройка 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 PlatformSMTP_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 OBPproto_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