Authentik: Guida all'installazione con Docker Compose
Man mano che Internet e i servizi sono diventati sempre più la norma nella nostra società e vita, proteggere i nostri servizi con l'autenticazione è diventata sempre più importante. È qui che entrano in gioco progetti straordinari come Authentik e Authelia. Queste soluzioni ti danno l'opportunità di configurare un sistema Single Sign On per tutti i tuoi servizi. Ciò significa che devi solo avere un accesso molto sicuro e puoi accedere a qualsiasi servizio che usi ogni giorno. Il single sign-on (SSO), traducibile come "autenticazione unica" è la proprietà di un sistema di controllo d'accesso che consente ad un utente di effettuare un'unica autenticazione valida per più sistemi software o risorse informatiche alle quali è abilitato.
Perché authentik?
Utilizzare un provider di identità open source e self-hosted significa dare priorità alla sicurezza e assumere il controllo dei dati più sensibili. Con authentik, non è più necessario affidarsi continuamente a un servizio di terze parti.
Requisiti:
- Docker e Docker Compose;
- Dominio Web per esporre l'app online;
- Pangolin;
- Una VM con 2 CPU cores e 2 GB di RAM;
Iniziamo...
Accediamo al nostro amatissimo terminale ed accertiamoci di aver installato docker (se non sai come fare leggi la mia guida), per farlo scriviamo sul nostro terminale:
docker -v
A video riceveremo una schermata simile a questa:

A questo punto possiamo procedere creando una directory nella nostra home chiamata "authentik", digitiamo quindi:
mkdir authentik
Accediamo alla directory:
cd authentik
Ed utilizzando wget scarichiamo il docker compose preconfezionato che viene fornito da Authentik:
wget https://goauthentik.io/docker-compose.yml
A questo punto trattandosi di una nuova installazione, procediamo col generare una password e una chiave segreta, per farlo, utilizzeremo openssl
come:
echo "PG_PASS=$(openssl rand -base64 36 | tr -d '\n')" >> .env
echo "AUTHENTIK_SECRET_KEY=$(openssl rand -base64 60 | tr -d '\n')" >> .env
Abilitiamo anche la segnalazione di eventuali errori con il comando:
echo "AUTHENTIK_ERROR_REPORTING__ENABLED=true" >> .env
Adesso che siamo pronti possiamo iniziare il download dell'immagine docker:
docker compose pull

Una volta completato il "pulling" possiamo iniziare ad avviare il nostro container:
docker compose up -d
A container avviato (solitamente bisogna attendere fino ad 1 minuto), rechiamoci col nostro browser al seguente indirizzo:
http://IP:9000/if/flow/initial-setup/
Se non scriviamo l'URL come sopra indicato riceveremo un errore Not Found, l'URL di configurazione iniziale deve include la barra in avanti finale /
.
A questo punto dobbiamo andare a creare una password per l'utente predefinito akadmin.
Una volta effettuata la creazione del nostro user, andiamo a personalizzare i nostri dati, per prima cosa rechiamoci nella voce Sistema e successivamente su Impostazioni, da qui abilitiamo le voci come dalla foto allegata:

Adesso rechiamoci nella rotellina delle impostazioni in alto a destra (vicino l'icona di logout):

Iniziamo modificando il nostro Username, successivamente Nome ed Email e rechiamoci nella voce Dispositivi MFA ed aggiungiamo un dispositivo TOTP per l'autenticazione a due fattori (come 2FAS):

Adesso possiamo dire di aver finito l'installazione.
Accedere ad Authentik da fuori casa con Pangolin:
Per poter accedere al nostro Authentik da "fuori casa" e quindi collegare i servizi che abbiamo fuori dalla nostra rete lan dobbiamo impostare l'accesso attraverso la "clearnet", per farlo accertiamoci di avere Pangolin installato.
ATTENZIONE:
Possiamo anche esporre Authentik senza Pangolin, aprendo le porte del router ed utilizzando un servizio di DNS Dinamico per IP Dinamici ma non è oggetto di questo tutorial, in ogni caso la procedura differisce solo nella parte di esposizione attraverso Pangolin.
Accediamo al nostro amatissimo Pangolin e creiamo una nuova "Resource" dal menu in alto a sinistra e successivamente cliccando il bottone "+ Add Resouce":

Successivamente nella sezione "Connectivity" abilitiamo la voce "Enable SSL (https)" ed inseriamo nella sezione "Target Configuration" il metodo http, l'ip della nostra VM con Authentik installato e la porta 9000, clicchiamo su Add Target e poi Save Target, per impostazione predefinita Pangolin abilita l'autenticazione fornita di base, andiamo a disattivarla nella sezione Authentication per non creare conflitti nel collegamento.
Adesso accediamo tramite browser web al nostro subdominio.dominio.com ed avremo la nostra istanza di Authentik online.
Effettuare l'upgrade di Authentik
Qui più che mai dobbiamo tenere il sistema SEMPRE AGGIORNATO, effettuare l'aggiornamento di authentik è veramente banale (non sempre). L'aggiornamento all'ultima versione di authentik, sia che si tratti di una nuova versione principale o di una patch, comporta l'esecuzione di alcuni comandi per estrarre le immagini più recenti e quindi riavviare server e database.
Prima di effettuare l'aggiornamento creiamo sempre una copia della cartella di authentik così da riuscire a fare un restore in caso di errori durante il processo di aggiornamento, per farlo dal terminale accediamo alla home dell'utente (ammettiamo di aver creato la directory di authentik nella home dell'utente):
cd /home/giuseppe
E copiamo l'intera directory di authentik:
cp -r authentik/ authentik.backup
Adesso possiamo effettuare l'update, per le istruzioni fare sempre riferimento alla documentazione ufficiale di Authentik ad ogni aggiornamento, nella maggior parte dei casi basterà scaricare il file compose aggiornato ed effettuare il restart del container.
Bene, oggi ci siamo concentrati esclusivamente sull’installazione e configurazione di Authentik. Nei prossimi articoli, vedremo come integrare applicazioni come Proxmox, Portainer e molte altre con il nostro sistema SSO.