Авторизация в компоненте реализуется с помощью стороннего ПО. В текущей версии доступна интеграция с Keycloak и Avanpost. Необходимо настроить ПО согласно инструкциям “Настройка аутентификации - Keycloak” или “Настройка аутентификаци - Avanpost”, в зависимости от избранной системы.
Необходимо выполнить следующие действия:
- Сделайте копию конфигурационного файла
cp /opt/skala-r/etc/vision/server/vision_core/grafana.yml /opt/skala-r/etc/vision/server/vision_core/grafana.yml.bak
- Укажите параметры провайдера OAuth в файле конфигурации
/opt/skala-r/etc/vision/server/vision_core/grafana.yml
в формате YAML.
Структура YAML-файла аналогична формату INI, где
INI | YAML |
---|---|
Имя секции[server] | Верхнеуровневый ключ YAML. server: |
Параметр секции domain = | Нижестоящий ключ YAML. domain: |
Например, при использовании Keycloak:
server:
domain: '<домен-визиона>'
auth:
signout_redirect_url: 'https://<хост-keycloak>/realms/<имя-realm>/protocol/openid-connect/logout?client_id=<id-клиента>'
oauth_allow_insecure_email_lookup: 'true'
auth.anonymous:
enabled: 'false'
auth.generic_oauth:
enabled: 'true'
name: 'Keycloak-OAuth'
allow_sign_up: 'true'
client_id: '<id-клиента>'
client_secret: 'vault.grafana.auth.generic_oauth.client_secret'
scopes: 'openid email profile offline_access roles'
email_attribute_path: "(contains(keys(@), 'user')) && (contains(user, 'email')) && user.email || preferred_email || preferred_username"
login_attribute_path: 'username'
name_attribute_path: 'full_name'
auth_url: 'https://<хост-keycloak>/realms/<имя-realm>/protocol/openid-connect/auth'
token_url: 'https://<хост-keycloak>/realms/<имя-realm>/protocol/openid-connect/token'
api_url: 'https://<хост-keycloak>/realms/<имя-realm>/protocol/openid-connect/userinfo'
role_attribute_path: "contains(roles[*], 'grafanaadmin') && 'GrafanaAdmin' || contains(roles[*], 'admin') && 'Admin' || contains(roles[*], 'editor') && 'Editor' || contains(roles[*], 'viewer') && 'Viewer'"
role_attribute_strict: 'true'
allow_assign_grafana_admin: 'true'
и при использовании Avanpost:
server:
domain: '<домен-визиона>'
auth:
oauth_allow_insecure_email_lookup: 'true'
auth.anonymous:
enabled: 'false'
auth.generic_oauth:
enabled: 'true'
name: 'FAM'
allow_sign_up: 'true'
client_id: '<ID приложения>'
client_secret: '<секрет приложения>'
scopes: 'openid profile email permissions groups'
email_attribute_path: "preferred_username"
login_attribute_path: 'preferred_username'
auth_url: 'https://<хост-Avanpost>/oauth2/authorize'
token_url: 'https://<хост-Avanpost>/oauth2/token'
api_url: 'https://<хост-Avanpost>/oauth2/userinfo'
tls_skip_verify_insecure: 'true'
role_attribute_path: "contains(groups[*].name, 'GrafanaAdmin') && 'GrafanaAdmin' || contains(groups[*].name, 'Grafana Editor') && 'Editor' || contains(groups[*].name, 'Grafana Admins') && 'Admin' || contains(groups[*].name, 'Grafana Viewer') && 'Viewer'"
role_attribute_strict: 'true'
allow_assign_grafana_admin: 'true'
signout_redirect_url: 'https://<хост-Avanpost>/oauth2/end_session?'
post_logout_redirect_uri: 'https://<хост-Avanpost>/oauth2/end_session?post_logout_redirect_uri=https://<ip_vision_vm>/vision/grafana/login'
-
Укажите секрет
vault.grafana.auth.generic_oauth.client_secret
в/opt/skala-r/vision/.secrets_vault
-
Пользователем root запустите скрипт
/opt/skala-r/vision/tools/update_server_configs.sh
-
Убедитесь, что сервисы Визион.Сервера успешно запущены
cd /opt/skala-r/vision/ && ./check_service.sh
. -
Перейдите в веб-интерфейс Визиона, открыв Интернет браузер, и введя в строке адреса IP-адрес сервера Визиона (
https://<vision-ip>
), после чего выберите пункт “Аналитические панели”. Убедитесь, что была запрошена авторизация через Keycloak или Avanpost, в зависимости от используемой системы.