
En este tutorial, os explicaré cómo integrar Authentik con GLPI para centralizar la autenticación de los usuarios. Veremos juntos cómo configurar la conexión basándonos en la autenticación transmitida en los encabezados HTTP, lo que permite simplificar la gestión de las cuentas y mejorar la seguridad de vuestro entorno
Tabla de contenido
¿Qué es la autenticación mediante solicitud HTTP?
La autenticación mediante solicitud HTTP es un mecanismo que permite a una aplicación delegar la gestión de la identidad de los usuarios a un servicio externo. En la práctica, cuando un usuario intenta acceder a una aplicación como GLPI, primero es autenticado por un servicio de terceros (en este caso, Authentik). Una vez verificada la identidad, los datos del usuario (por ejemplo, su nombre de usuario o su dirección de correo electrónico) se transmiten a la aplicación de destino a través de un encabezado HTTP.
Por lo tanto, GLPI no necesita gestionar directamente la contraseña del usuario. Se basa en los datos proporcionados en la solicitud HTTP para identificar a la persona y concederle el acceso. Este método resulta especialmente interesante para centralizar los accesos, simplificar la gestión de cuentas y reforzar la seguridad al limitar los puntos de almacenamiento de contraseñas.
En resumen, la autenticación HTTP actúa como un puente de confianza entre el servicio de autenticación (Authentik) y la aplicación final (GLPI).

Requisitos previos
Para empezar, necesitarás tener instalado GLPI 11 y Authenik. Lo ideal es disponer de un proxy inverso en Nginx (de lo contrario, deberás adaptar el tutorial a tu entorno).
Los usuarios deben estar creados en GLPI.
Configuración de Authentik para la autenticación HTTP en GLPI
Para empezar, vamos a añadir el proveedor y la aplicación GLPI 11 en Authentik.
En el menú Aplicaciones, haz clic en Proveedor 1 y, a continuación, en Crear 2.

En la lista de proveedores, haz clic en «Proxy Provider» 1 y, a continuación, en el botón «Siguiente» 2.

Asigne un nombre al proveedor 1, seleccione el flujo de autenticación 2, en el tipo, seleccione «Transferir la autenticación (aplicación única)» 3, introduzca la URL de GLPI 4 y haga clic en el botón «Finalizar» 5.

El proveedor ya está creado.
En el menú de navegación, despliega «Aplicaciones», ve a «Aplicaciones» 1 y, en la página de aplicaciones, haz clic en el botón «Crear» 2.

Asigna un nombre a la aplicación 1 e introduce el slug 2 si no se genera automáticamente; en el proveedor, selecciona GLPI 3, que se ha creado anteriormente, y haz clic en el botón «Crear» 4.

La aplicación ya está creada.

Publica el proveedor GLPI en el Avant-Post (Outpost) de Authentik: desde el menú «Aplicaciones», haz clic en «Outposts» 1 y, a continuación, en el botón de edición de «Authentik Embedded Outpost» 2.

Añada la aplicación GLPI a las aplicaciones seleccionadas 1 y haga clic en «Actualizar» 2.

La configuración en Authentik ha finalizado.
Activar y configurar la autenticación mediante solicitud HTTP en GLPI 11
Ahora pasaremos a la configuración de GLPI 11
Desde el menú, ve a «Configuración» / «Autenticación» y haz clic en «Otros métodos de autenticación» 1.

En la página de configuración, tendremos que añadir la variable que se ha pasado a Authentik; haz clic en el botón + 1.

Introduce el nombre de la variable, que es: HTTP_X_AUTHENTIK_USERNAME 1 y, a continuación, haz clic en Añadir 2.

A continuación, en GLPI, selecciona la variable que acabamos de crear 1 en el campo: «Campo de almacenamiento del identificador en la solicitud HTTP» y haz clic en «Guardar» 2.

Configuración de Nginx
Por último, pasaremos a la configuración de Nginx, que es el proxy inverso para acceder a GLPI y a Authentik.
En tu proxy inverso, empieza por guardar el virtualhost de GLPI:
sudo cp vh-glpi vh-glpi.BACKUPPara ayudarnos a configurar el host virtual, Authentik nos proporciona la configuración que debemos aplicar; para ello, en la lista de proveedores, haz clic en el que se utiliza para GLPI.

En los detalles del proveedor, en la configuración, ve a la sección Nginx (autónomo) y podrás ver la configuración que debes aplicar en Nginx.

Utilice los elementos de configuración para pegarlos en el host virtual de GLPI, adaptando las directivasproxy_passa su entorno si es necesario.
Para ayudarte, aquí tienes la configuración de mi host virtual de GLPI:
server{
listen 443 ssl;
http2 on;
server_name glpi.domain.tld;
access_log /var/log/nginx/glpi.domain.tld_access.log;
more_clear_headers Server;
more_clear_headers X-Powered-By;
client_max_body_size 0;
ssl_certificate /etc/nginx/ssl/san-internal.pem;
ssl_certificate_key /etc/nginx/ssl/san-internal.key;
proxy_buffers 8 16k;
proxy_buffer_size 32k;
location /{
proxy_pass http://ip-glpi-server;
proxy_ssl_verify off;
include proxy_params;
##############################
# authentik-specific config
##############################
auth_request /outpost.goauthentik.io/auth/nginx;
error_page 401 = @goauthentik_proxy_signin;
auth_request_set $auth_cookie $upstream_http_set_cookie;
add_header Set-Cookie $auth_cookie;
# translate headers from the outposts back to the actual upstream
auth_request_set $authentik_username $upstream_http_x_authentik_username;
auth_request_set $authentik_groups $upstream_http_x_authentik_groups;
auth_request_set $authentik_entitlements $upstream_http_x_authentik_entitlements;
auth_request_set $authentik_email $upstream_http_x_authentik_email;
auth_request_set $authentik_name $upstream_http_x_authentik_name;
auth_request_set $authentik_uid $upstream_http_x_authentik_uid;
proxy_set_header X-authentik-username $authentik_username;
proxy_set_header X-authentik-groups $authentik_groups;
proxy_set_header X-authentik-entitlements $authentik_entitlements;
proxy_set_header X-authentik-email $authentik_email;
proxy_set_header X-authentik-name $authentik_name;
proxy_set_header X-authentik-uid $authentik_uid;
proxy_set_header HTTP_AUTH_USER $authentik_username;
}
# all requests to /outpost.goauthentik.io must be accessible without authentication
location /outpost.goauthentik.io {
# When using the embedded outpost, use:
proxy_pass http://ip-authentik:80/outpost.goauthentik.io;
# For manual outpost deployments:
# proxy_pass http://outpost.company:9000;
# Note: ensure the Host header matches your external authentik URL:
proxy_set_header Host $host;
proxy_set_header X-Original-URL $scheme://$http_host$request_uri;
add_header Set-Cookie $auth_cookie;
auth_request_set $auth_cookie $upstream_http_set_cookie;
proxy_pass_request_body off;
proxy_set_header Content-Length "";
}
# Special location for when the /auth endpoint returns a 401,
# redirect to the /start URL which initiates SSO
location @goauthentik_proxy_signin {
internal;
add_header Set-Cookie $auth_cookie;
return 302 /outpost.goauthentik.io/start?rd=$scheme://$http_host$request_uri;
# For domain level, use the below error_page to redirect to your authentik server with the full redirect path
# return 302 https://authentik.company/outpost.goauthentik.io/start?rd=$scheme://$http_host$request_uri;
}
}
server{
listen 80;
server_name glpi.domain.tld;
more_clear_headers Server;
more_clear_headers X-Powered-By;
if ($host = glpi.domain.tld;) {
return 301 https://$host$request_uri;
}
return 404;
}Prueba la configuración de Nginx:
sudo nginx -tRecarga la configuración:
sudo systemctl reload nginxPrueba la autenticación con Authenik
Desde otro navegador (o en modo incógnito), acceda a la URL de GLPI; debería aparecer el formulario de inicio de sesión de Authentik. Introduzca el nombre de usuario y la contraseña de un usuario que figure en Authentik y que haya sido configurado en GLPI.

Si todo va bien, estaré conectado a GLPI y tendré acceso al portal de usuario.

Además, para ayudarte con la configuración, aquí tienes la lista de variables $_SERVER de GLPI con Authentik.

Conclusión
Gracias a la integración de Authentik con GLPI mediante la autenticación por solicitud HTTP, dispones de una solución sencilla y segura para centralizar la gestión de identidades. Este método permite delegar la autenticación a un servicio específico, al tiempo que garantiza una experiencia fluida para los usuarios, que ya no necesitan recordar varias credenciales.
Al implementar esta configuración, facilitarás la administración de tu entorno al tiempo que refuerzas la seguridad general. Este enfoque resulta especialmente útil en infraestructuras en las que varias aplicaciones deben compartir un mismo sistema de autenticación.
