Настройка доступа к консоли Grafana с использованием LDAP
В этом разделе описана процедура использования провайдера идентификации LDAP в StarVault для доступа к OAuth-приложениям на примере Grafana.
1. Необходимые условия
-
Токен доступа к хранилищу секретов StarVault с привилегиями
root. -
Доступ к кластеру с учетной записью, имеющей роль
cluster-adminв Kubernetes. -
Провайдер идентификации LDAP настроен и подключен в StarVault.
2. Настройка доступа в StarVault
-
В веб-интерфейсе StarVault выберите вкладку Доступ → Группы.
-
Создайте группу и присвойте ей псевдоним.
-
Нажмите Создать группу.
-
В поле Название укажите имя группы так же, как группа называется в каталоге LDAP-сервера.
-
В поле Тип укажите параметр внешний.
-
Нажмите Создать чтобы создать группу. Откроется страница с параметрами созданной группы.
-
-
Нажмите Добавить псевдоним.
-
В поле Название укажите имя псевдонима так же, как название группы в каталоге LDAP-сервера.
-
В поле Бэкенд аутентификации выберите имя метода аутентификации LDAP.
-
Нажмите Создать.
-
-
|
Для удобства и простоты администрирования рекомендуется использовать один псевдоним на одну сущность в StarVault. |
-
В веб-интерфейсе StarVault перейдите на вкладку Доступ → OIDC Провайдер→ Назначения.
-
Нажмите Создать назначение.
-
В поле Название укажите любое имя, например название приложения, к которому предоставляется доступ.
-
В поле Группы выберите группу, созданную ранее.
-
Нажмите Создать.
-
-
Перейдите на вкладку Доступ → OIDC Провайдер→ Приложения.
-
Выберите приложение
oidc-auth-grafana.
-
Нажмите Изменить.
-
В поле Имя приложения выберите ранее созданный Назначение.
-
Нажмите Обновить.
-
-
Перейдите на вкладку Доступ → OIDC Провайдер→ Области применения.
-
Нажмите Изменить рядом с параметром
email. -
Измените значение на
{ "email": {{identity.entity.name}} }. -
Нажмите Обновить.
-
3. Настройка доступа в Grafana с правами администратора
|
Если требуется роль Viewer в Grafana, то следующие шаги можно не выполнять. Достаточно выполнить все предыдущие шаги и пользователи из указанной группы будут иметь роль Viewer в Grafana. |
-
В веб-интерфейсе Nova Container Platform выберите вкладку Ресурсы, далее ConfigMaps. Выберите
nova-grafana.
-
Перейдите на страницу секрета и в разделе Данные скопируйте значение
grafana.ini. -
Перейдите на вкладку Администрирование → CustomResourceDefinitions и выберите Kustomization.
-
Перейдите на вкладку Инстансы и выберите
nova-release-grafana-main.
-
На вкладке YAML добавьте патч в блок spec. Значение файла
grafana.iniдолжно быть аналогичным значению из пункта 2. Измените полеrole_attribute_path, чтобы добавить группе, созданной ранее, роль администратора. В примере ниже добавляется группаtestgroup.Пример поля role_attribute_path`role_attribute_path = (contains(groups[*], 'kubeadmins') || contains(groups[*], 'testgroup')) && 'Admin' || 'Viewer'`НЕ копируйте значение ConfigMap из примера! Данные будут расходиться с данными из вашего кластера.
Пример конфигурации Grafana
patches: - patch: |- kind: ConfigMap apiVersion: v1 metadata: name: nova-grafana namespace: nova-monitoring data: grafana.ini: | [analytics] check_for_updates = false [auth.generic_oauth] allow_assign_grafana_admin = true allow_sign_up = true api_url = https://nova-oauth.nova.test.platform/v1/identity/oidc/provider/nova/userinfo auth_url = https://nova-oauth.nova.test.platform/ui/vault/identity/oidc/provider/nova/authorize auto_assign_org_role = Viewer client_id = $__env{GRAFANA_OIDC_CLIENT_ID} client_secret = $__env{GRAFANA_OIDC_CLIENT_SECRET} email_attribute_path = sub enabled = true name = Nova OAuth name_attribute_path = sub oauth_auto_login = false role_attribute_path = (contains(groups[*], 'kubeadmins') || contains(groups[*], 'novatestgroup')) && 'Admin' || 'Viewer' scopes = openid profile email groups tls_client_ca = /etc/ssl/certs/ca-certificates.crt tls_skip_verify_insecure = false token_url = https://nova-oauth.nova.test.platform/v1/identity/oidc/provider/nova/token use_pkce = true [grafana_net] url = https://grafana.net [users] viewers_can_edit = true [log] mode = console [paths] data = /var/lib/grafana/ logs = /var/log/grafana plugins = /var/lib/grafana/plugins provisioning = /etc/grafana/provisioning [security] admin_password = admin admin_user = admin [server] domain = nova-grafana-main.nova.test.platform root_url = https://nova-grafana-main.nova.test.platform -
Нажмите Cохранить, затем Обновить. Дождитесь перезапуска пода
nova-grafana.