Для улучшения работы сайта мы используем файлы cookies. Оставаясь на сайте, вы соглашаетесь с политикой обработки персональных данных.

Настройка доступа к консоли Grafana с использованием LDAP

В этом разделе описана процедура использования провайдера идентификации LDAP в StarVault для доступа к OAuth-приложениям на примере Grafana.

1. Необходимые условия

  • Токен доступа к хранилищу секретов StarVault с привилегиями root.

  • Доступ к кластеру с учетной записью, имеющей роль cluster-admin в Kubernetes.

  • Провайдер идентификации LDAP настроен и подключен в StarVault.

2. Настройка доступа в StarVault

  1. В веб-интерфейсе StarVault выберите вкладку ДоступГруппы.

  2. Создайте группу и присвойте ей псевдоним.

    ldap grafana 1
    • Нажмите Создать группу.

      • В поле Название укажите имя группы так же, как группа называется в каталоге LDAP-сервера.

      • В поле Тип укажите параметр внешний.

      • Нажмите Создать чтобы создать группу. Откроется страница с параметрами созданной группы.

    • Нажмите Добавить псевдоним.

      ldap grafana
      • В поле Название укажите имя псевдонима так же, как название группы в каталоге LDAP-сервера.

      • В поле Бэкенд аутентификации выберите имя метода аутентификации LDAP.

      • Нажмите Создать.

        ldap grafana 2

Для удобства и простоты администрирования рекомендуется использовать один псевдоним на одну сущность в StarVault.

  1. В веб-интерфейсе StarVault перейдите на вкладку ДоступOIDC ПровайдерНазначения.

  2. Нажмите Создать назначение.

    ldap grafana 3
    • В поле Название укажите любое имя, например название приложения, к которому предоставляется доступ.

    • В поле Группы выберите группу, созданную ранее.

    • Нажмите Создать.

  3. Перейдите на вкладку ДоступOIDC ПровайдерПриложения.

    • Выберите приложение oidc-auth-grafana.

      ldap grafana 4
    • Нажмите Изменить.

    • В поле Имя приложения выберите ранее созданный Назначение.

    • Нажмите Обновить.

  4. Перейдите на вкладку ДоступOIDC ПровайдерОбласти применения.

    ldap grafana 5
    • Нажмите Изменить рядом с параметром email.

    • Измените значение на { "email": {{identity.entity.name}} }.

    • Нажмите Обновить.

3. Настройка доступа в Grafana с правами администратора

Если требуется роль Viewer в Grafana, то следующие шаги можно не выполнять. Достаточно выполнить все предыдущие шаги и пользователи из указанной группы будут иметь роль Viewer в Grafana.

  1. В веб-интерфейсе Nova Container Platform выберите вкладку Ресурсы, далее ConfigMaps. Выберите nova-grafana.

    ldap grafana 6
  2. Перейдите на страницу секрета и в разделе Данные скопируйте значение grafana.ini.

  3. Перейдите на вкладку АдминистрированиеCustomResourceDefinitions и выберите Kustomization.

    ldap grafana 7
  4. Перейдите на вкладку Инстансы и выберите nova-release-grafana-main.

    ldap grafana 8
  5. На вкладке 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
  6. Нажмите Cохранить, затем Обновить. Дождитесь перезапуска пода nova-grafana.

4. Проверка

  1. Войдите в веб-интерфейс Grafana с использованием LDAP-подключения.

  2. Перейдите на вкладку AdministrationUsers and accessUsers и убедитесь, что пользователь имеет права администратора.