Habilitando autenticación LDAP en Grafana

Bueno, otro post que será cortito con idea de usar recomendaciones y mejores prácticas; hoy toca recordar que no debemos usar usuarios locales, y así que le metemos mano a Grafana, y forzaremos los inicios de sesión de un almacén central como pueda ser nuestro Directorio Activo o cualquier LDAP.

 

Pues lo dicho, debemos intentar usar usuarios locales en cada servicio que tengamos en la organización, por muchas razones, es mejor gobernar un sitio central de usuarios que N repartidos, donde sabe Diosito cuando se le cambió la contraseña la última vez, políticas de complejidad… Y como no, para delegar permisos, será mejor dar acceso a quien lo requiera únicamente a donde deba ¿no? que no dar permisos a todo… Y para ello es fundamental apoyarnos (en este caso) en un Directorio Activo.

 

Venga, que está chupao! Empezamos! Lo primero será indicarle a Grafana que queremos usar LDAP, así que en el fichero de configuración de Grafana ‘/etc/grafana/grafana.ini’ lo habilitamos:

[auth.ldap]
enabled = true
config_file = /etc/grafana/ldap.toml
allow_sign_up = false

 

Y ahora sí que toca configurar el fichero de configuración para LDAP, deberemos indicar como siempre el FQDN de algún controlador de dominio, lo ideal siempre es usar el nombre del dominio, así dará igual cuantos DCs tengamos que el DNS balanceará la entrada; o si migramos a futuro las máquinas LDAP no tengamos que acordarnos y venir aquí a tocar. Indicamos el puerto, si usaremos LDAP 389 o LDAPS 636 preferiblemente. Así como un usuario específico con privilegios de lectura para validar las autenticaciones, y adicionalmente podremos filtrar más, por ejemplo a partir de que OU estarán los usuarios o un grupo al que deban pertenecer para poder acceder, y que tengan por defecto el rol de visor:

servers
host = "FQDN_LDAP"
port = 636
use_ssl = true
start_tls = true
ssl_skip_verify = false
bind_dn = "cn=ldap_grafana,ou=OU2,ou=OU1,dc=dominio,dc=local"
bind_password = 'XXXXXXXXXXXXXXXXXXX'
search_filter = "(sAMAccountName=%s)"
search_base_dns = ["dc=dominio,dc=local"]
group_search_base_dns = ["cn=Usuarios Grafana,ou=OU2,ou=OU1,dc=dominio,dc=local"]
[servers.attributes]
name = "givenName"
surname = "sn"
username = "sAMAccountName"
member_of = "memberOf"
email =  "email"
servers.group_mappings
group_dn = "cn=Usuarios Grafana,ou=OU2,ou=OU1,dc=dominio,dc=local"
org_role = "Viewer"

 

Y con esto y un bizcocho…. ¡lo tenemos! Reiniciamos Grafana y probamos a validarnos y a acceder con un usuario de Directorio Activo.

sudo systemctl restart grafana-server

 

Pues esto es todo por hoy 🙂 Mandaros un abrazo, cuidaros, cuidar de los vuestros, que os vaya muy bien!

 

Héctor Herrero