Перейти к основному содержанию

Grafana

Использование Casdoor для аутентификации в Grafana

Grafana поддерживает аутентификацию через OAuth. Поэтому пользователям очень легко использовать Casdoor для входа в Grafana. Для этого нужно всего несколько шагов и простая конфигурация.

Вот руководство по использованию Casdoor для аутентификации в Grafana. Прежде чем продолжить, убедитесь, что у вас установлена и запущена Grafana.

Шаг 1: Создайте приложение для Grafana в Casdoor

Вот пример создания приложения в Casdoor:

Создание приложения в Casdoor

Пожалуйста, скопируйте секрет клиента и идентификатор клиента для следующего шага.

Пожалуйста, добавьте URL обратного вызова для Grafana. По умолчанию, OAuth обратный вызов в Grafana - /login/generic_oauth. Так что, пожалуйста, правильно соедините этот URL.

Шаг 2: Измените конфигурацию Grafana

По умолчанию, файл конфигурации для OAuth находится в conf/defaults.ini в рабочем каталоге Grafana.

Пожалуйста, найдите секцию [auth.generic_oauth] и измените следующие поля:

[auth.generic_oauth]
name = Casdoor
icon = signin
enabled = true
allow_sign_up = true
client_id = <client ID from previous step>
client_secret = <client secret from previous step>
auth_url = <Casdoor endpoint>/login/oauth/authorize
token_url = <Casdoor endpoint>/api/login/oauth/access_token

О HTTPS

Если вы не хотите использовать HTTPS для Casdoor или если вы развертываете Grafana без включенного HTTPS, пожалуйста, также установите tls_skip_verify_insecure = true.

О redirectURI после входа через Casdoor

Если после входа через Casdoor в Grafana URI перенаправления неверен, возможно, вам потребуется настроить root_url.

[server]
http_port = 3000
# The public-facing domain name used to access Grafana from a browser
domain = <your IP here>
# The full public-facing URL
root_url = %(protocol)s://%(domain)s:%(http_port)s/

Связанные ссылки:

  1. Документация Grafana

  2. Файл defaults.ini для Grafana

О сопоставлении ролей

Возможно, вам потребуется настроить role_attribute_path, чтобы сопоставить роль вашего пользователя с Grafana через role_attribute_path.

[auth.generic_oauth]
role_attribute_path = contains(roles[*].name, 'admin') && 'Admin' || contains(roles[*].name, 'editor') && 'Editor' || 'Viewer'
role_attribute_strict = true
allow_assign_grafana_admin = true

Выражение JMESPath после role_attribute_path очень важно здесь. Пожалуйста, обратитесь к документации Grafana.

Шаг 3: Проверьте, работает ли это

Закройте Grafana и перезапустите ее.

Перейдите на страницу входа. Вы должны увидеть что-то вроде этого:

Окончательный результат