
In questo tutorial vi spiegherĂČ come integrare Authentik con GLPI per centralizzare lâautenticazione degli utenti. Vedremo insieme come configurare la connessione basandoci sullâautenticazione trasmessa nelle intestazioni HTTP, il che consente di semplificare la gestione degli account e di migliorare la sicurezza del vostro ambiente
Sommario
Che cosâĂš lâautenticazione tramite richiesta HTTP?
L’autenticazione tramite richiesta HTTP Ăš un meccanismo che consente a un’applicazione di delegare la gestione dell’identitĂ degli utenti a un servizio esterno. In pratica, quando un utente tenta di accedere a un’applicazione come GLPI, viene prima autenticato da un servizio di terze parti (in questo caso Authentik). Una volta verificata lâidentitĂ , le informazioni dellâutente (ad esempio il suo nome utente o il suo indirizzo e-mail) vengono trasmesse allâapplicazione di destinazione tramite unâintestazione HTTP.
GLPI non ha quindi bisogno di gestire direttamente la password dellâutente. Si basa sui dati forniti nella richiesta HTTP per identificare la persona e concederle lâaccesso. Questo metodo Ăš particolarmente interessante per centralizzare gli accessi, semplificare la gestione degli account e rafforzare la sicurezza limitando i punti di archiviazione delle password.
In sintesi, lâautenticazione HTTP funge da ponte di fiducia tra il servizio di autenticazione (Authentik) e lâapplicazione finale (GLPI).

Prerequisiti
Per iniziare, Ăš necessario avere GLPI 11 e Authenik installati. Idealmente, un reverse proxy su Nginx (altrimenti Ăš necessario adattare il tutorial al proprio ambiente).
Gli utenti devono essere configurati in GLPI.
Configurazione di Authentik per lâautenticazione HTTP in GLPI
Per iniziare, aggiungeremo il provider e lâapplicazione GLPI 11 in Authentik.
Nel menu Applicazioni, cliccare su Provider 1, quindi su Crea 2.

Nell’elenco dei provider, cliccare su Proxy Provider 1, quindi sul pulsante Avanti 2.

Assegnare un nome al provider 1, selezionare il flusso di autenticazione 2, nel campo Tipo selezionare Inoltra autenticazione (singola applicazione) 3, quindi inserire lâURL di GLPI 4 e fare clic sul pulsante Fine 5.

Il provider Ăš stato creato.
Nel menu di navigazione, espandere «Applicazioni», quindi andare su «Applicazioni» 1 e, nella pagina delle applicazioni, cliccare sul pulsante «Crea» 2.

Assegnare un nome allâapplicazione 1 e inserire lo slug 2 se non viene generato automaticamente; nel campo «Provider» selezionare GLPI 3, creato in precedenza, e fare clic sul pulsante «Crea» 4.

Lâapplicazione Ăš stata creata.

Pubblicare il provider GLPI sullâAvant-Post (Outpost) di Authentik: dal menu Applicazioni, fare clic su Outposts 1, quindi sul pulsante di modifica di Authentik Embedded Outpost 2.

Aggiungere lâapplicazione GLPI alle applicazioni selezionate 1 e fare clic su «Aggiorna» 2.

La configurazione in Authentik Ăš completata.
Attivare e configurare lâautenticazione tramite richiesta HTTP in GLPI 11
Passiamo ora alla configurazione di GLPI 11
Dal menu, andare su Configurazione / Autenticazione e cliccare su Altri metodi di autenticazione 1.

Nella pagina di configurazione, dovremo aggiungere la variabile che viene passata ad Authentik; fare clic sul pulsante + 1.

Inserire il nome della variabile, ovvero: HTTP_X_AUTHENTIK_USERNAME 1, quindi fare clic su Aggiungi 2.

Successivamente, in GLPI, selezionare la variabile appena creata 1 nel campo: Campo di memorizzazione dellâidentificativo nella richiesta HTTP e fare clic su Salva 2.

Configurazione di Nginx
Infine, passeremo alla configurazione di Nginx, che funge da reverse proxy per lâaccesso a GLPI e ad Authentik.
Sul proprio reverse proxy, iniziare salvando il virtualhost di GLPI:
sudo cp vh-glpi vh-glpi.BACKUPPer aiutarci a configurare il virtualhost, Authentik ci fornisce la configurazione da implementare; a tal fine, nellâelenco dei Provider, cliccare su quello dedicato a GLPI.

Nei dettagli del provider, nella sezione di configurazione, andate alla sezione Nginx (standalone) e potrete vedere la configurazione da applicare a Nginx.

Utilizzate gli elementi di configurazione per incollarli nel virtualhost di GLPI, avendo cura di adattare le direttiveproxy_passal vostro ambiente.
Per aiutarvi, ecco la configurazione del mio virtualhost 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;
}Verifica la configurazione di Nginx:
sudo nginx -tRicaricare la configurazione:
sudo systemctl reload nginxVerifica l’autenticazione con Authentik
Da un altro browser (o in modalitĂ privata), accedere all’URL di GLPI; si dovrebbe visualizzare il modulo di autenticazione di Authentik. Inserire l’ID e la password di un utente presente in Authentik e che Ăš stato configurato in GLPI.

Se tutto Ăš a posto, sarĂČ connesso a GLPI e avrĂČ accesso al portale utente.

Inoltre, per aiutarvi nella configurazione, ecco lâelenco delle variabili $_SERVER di GLPI con Authentik.

Conclusione
Grazie allâintegrazione di Authentik con GLPI tramite lâautenticazione tramite richiesta HTTP, potrete beneficiare di una soluzione semplice e sicura per centralizzare la gestione delle identitĂ . Questo metodo consente di delegare lâautenticazione a un servizio dedicato, garantendo al contempo unâesperienza fluida per gli utenti, che non devono piĂč ricordare piĂč credenziali.
Implementando questa configurazione, semplificate lâamministrazione del vostro ambiente rafforzando al contempo la sicurezza complessiva. Questo approccio Ăš particolarmente utile nelle infrastrutture in cui piĂč applicazioni devono condividere lo stesso sistema di autenticazione.
