Saltar al contenido principal

Grafana

Usando Casdoor para autenticación en Grafana

Grafana soporta autenticación vía OAuth. Por lo tanto, es extremadamente fácil para los usuarios utilizar Casdoor para iniciar sesión en Grafana. Solo se necesitan varios pasos y configuraciones simples para lograrlo.

Aquí hay un tutorial sobre cómo usar Casdoor para autenticación en Grafana. Antes de continuar, por favor asegúrate de tener Grafana instalado y en funcionamiento.

Paso 1: Crear una aplicación para Grafana en Casdoor

Aquí hay un ejemplo de cómo crear una aplicación en Casdoor:

Crear una aplicación en Casdoor

Por favor copia el secreto del cliente y el ID del cliente para el siguiente paso.

Por favor agrega la URL de callback de Grafana. Por defecto, el callback OAuth de Grafana es /login/generic_oauth. Así que por favor concatena esta URL correctamente.

Paso 2: Modificar la configuración de Grafana

Por defecto, el archivo de configuración para OAuth se encuentra en conf/defaults.ini en el directorio de trabajo de Grafana.

Por favor encuentra la sección [auth.generic_oauth] y modifica los siguientes campos:

[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

Acerca de HTTPS

Si no quieres que HTTPS esté habilitado para Casdoor o si despliegas Grafana sin HTTPS habilitado, por favor también establece tls_skip_verify_insecure = true.

Acerca de redirectURI después de Iniciar Sesión Con Casdoor

Si la URI de redirección no es correcta después de iniciar sesión con Casdoor en Grafana, es posible que quieras configurar 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/

Enlaces relacionados:

  1. Documentación de Grafana

  2. Grafana defaults.ini

Acerca del Mapeo de Roles

Es posible que quieras configurar role_attribute_path para mapear el rol de tu usuario a Grafana vía 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

La expresión JMESPath después de role_attribute_path es muy importante aquí. Por favor consulta la documentación de Grafana.

Paso 3: Ver si funciona

Apaga Grafana y reinícialo.

Ve a la página de inicio de sesión. Deberías ver algo como esto:

Resultado final