Grafana
Использование Casdoor для аутентификации в Grafana
Grafana поддерживает аутентификацию через OAuth. Поэтому пользователям очень легко использовать Casdoor для входа в Grafana. Для этого нужно всего несколько шагов и простая конфигурация.
Вот руководство по использованию Casdoor для аутентификации в Grafana. Прежде чем продолжить, убедитесь, что у вас установлена и запущена Grafana.
Шаг 1: Создайте приложение для Grafana в 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/
Связанные ссылки:
О сопоставлении ролей
Возможно, вам потребуется настроить 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 и перезапустите ее.
Перейдите на страницу входа. Вы должны увидеть что-то вроде этого: