Перейти до основного вмісту

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

Якщо redirect URI не вірний після входу через Casdoor в Grafana, вам може знадобитися налаштувати 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. Grafana defaults.ini

Про відображення ролей

Вам може знадобитися налаштувати 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 та перезапустіть її.

Перейдіть на сторінку входу. Ви повинні побачити щось подібне:

Кінцевий результат