
Authentik è un Identity Provider (IdP) self-hosted e open-source. Serve per centralizzare l’autenticazione e l’autorizzazione degli utenti su più servizi o applicazioni.
In parole semplici: è un sistema che controlla chi può accedere a cosa, come e quando.
In questo articolo vedremo come installare e configurare Authentik su Ubuntu Server 24.04, utilizzando Docker e Docker Compose per una gestione semplice e modulare. Partiremo da una configurazione base, ideale per chi si avvicina per la prima volta a questo strumento, e getteremo le basi per un’infrastruttura di autenticazione centralizzata e moderna.
Che tu sia un sysadmin, uno sviluppatore o un appassionato di home lab, questa guida ti accompagnerà passo passo nella messa in opera di Authentik.
PREREQUISITI
- Un host con almeno 2 core CPU e 2 GB di RAM
- Ubuntu Server 24.04 aggiornato
- Accesso root o sudo
- Connessione a Internet
- Docker
- Docker Compose (Compose v2)
AGGIORNAMENTO DEL SISTEMA
Assicurarsi che il sistema sia aggiornato eseguendo i seguenti comandi:
0 1 |
sudo apt update sudo apt upgrade |
INSTALLAZIONE DI DOCKER COMPOSE V2
Per installare Docker Compose V2 eseguire il comando:
0 |
sudo apt install docker.io -y |
Abilitare e avviare Docker con i seguenti comandi:
0 1 |
sudo systemctl enable docker sudo systemctl start docker |
Controllare se Docker è stato installato correttamente eseguendo il comando:
0 |
docker --version |
Dovremmo visualizzare il seguente output:
0 |
Docker version 27.5.1, build 27.5.1-0ubuntu3~24.04.2 |
Per installare Docker Compose v2 è possibile utilizzare i comandi seguenti.
Potrebbe essere necessario scaricare l’ultima versione di Docker Compose dal repository GitHub ufficiale,
0 1 2 |
curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose |
NOTA BENE: Il comando precedente scaricherà e installerà l’ultima versione di Docker Compose
Controllare se Docker Compose è stato installato correttamente eseguendo il comando:
0 |
docker-compose --version |
Dovremmo visualizzare il seguente output:
0 |
Docker Compose version v2.39.1 |
INSTALLAZIONE DI AUTHENTIK
Creare la cartella del progetto Authentik con il comando:
0 |
mkdir -p ~/authentik && cd ~/authentik |
Per scaricare l’ultima versione aprire il terminale ed eseguire il comando:
0 |
wget https://goauthentik.io/docker-compose.yml |
Se si tratta di una nuova installazione di authentik è necessario generare una password e una chiave segreta.
Usare un generatore di password sicuro come pwgen, oppure puoi usarlo come di seguito con openssl
Eseguire i seguenti comandi per generare una password e una chiave segreta e scriverle nel file .env:
0 1 |
echo "PG_PASS=$(openssl rand -base64 36 | tr -d '\n')" >> .env echo "AUTHENTIK_SECRET_KEY=$(openssl rand -base64 60 | tr -d '\n')" >> .env |
ATTENZIONE: A causa di una limitazione di PostgreSQL, sono supportate solo le password fino a 99 caratteri
Per abilitare la segnalazione degli errori eseguire il comando:
0 |
echo "AUTHENTIK_ERROR_REPORTING__ENABLED=true" >> .env |
CONFIGURAZIONE DELLA MAIL
E’ consigliato configurare le credenziali e-mail globali.
Questi vengono utilizzati da authentik per avvisarti di avvisi e problemi di configurazione.
Possono anche essere utilizzati dalle fasi e-mail per inviare e-mail di verifica/recupero.
Per configurare le credenziali e-mail editare il file .env con il comando:
0 |
nano .env |
Quindi aggiungere questo blocco:
0 1 2 3 4 5 6 7 8 9 10 11 12 |
# SMTP Host Emails are sent to AUTHENTIK_EMAIL__HOST=localhost AUTHENTIK_EMAIL__PORT=25 # Optionally authenticate (don't add quotation marks to your password) AUTHENTIK_EMAIL__USERNAME= AUTHENTIK_EMAIL__PASSWORD= # Use StartTLS AUTHENTIK_EMAIL__USE_TLS=false # Use SSL AUTHENTIK_EMAIL__USE_SSL=false AUTHENTIK_EMAIL__TIMEOUT=10 # Email address authentik will send from, should have a correct @domain AUTHENTIK_EMAIL__FROM=authentik@localhost |
ATTENZIONE: nel blocco appena aggiunto inserire le info corrette
Salvare e chiudere il file .env
CONFIGURAZIONE DELLA PORTA 80/443
Per impostazione predefinita authentik è in ascolto interno sulla porta 9000 per HTTP e 9443 per HTTPS.
Per modificare le porte esposte in 80 e 443, è possibile impostare le seguenti variabili nel file .env:
0 1 |
COMPOSE_PORT_HTTP=80 COMPOSE_PORT_HTTPS=443 |
Se abbiamo fatto tutto correttamante dovremmo visualizzare il seguente contenuto nel file .env:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
PG_PASS=5jL5JL0Hlv6gq16pGCA/cITAA0FPoYiayFoosEQUR8JHSixY AUTHENTIK_SECRET_KEY=HSGfDmgbgZy3nToKNcX85VKi+G7scEXB1tDkSYQd4fzZUMliijBFXInITbXaJHcxMG3bOhgNqSNl> AUTHENTIK_ERROR_REPORTING__ENABLED=true # SMTP Host Emails are sent to AUTHENTIK_EMAIL__HOST=localhost AUTHENTIK_EMAIL__PORT=25 # Optionally authenticate (don't add quotation marks to your password) AUTHENTIK_EMAIL__USERNAME= AUTHENTIK_EMAIL__PASSWORD= # Use StartTLS AUTHENTIK_EMAIL__USE_TLS=false # Use SSL AUTHENTIK_EMAIL__USE_SSL=false AUTHENTIK_EMAIL__TIMEOUT=10 # Email address authentik will send from, should have a correct @domain AUTHENTIK_EMAIL__FROM=authentik@localhost COMPOSE_PORT_HTTP=80 COMPOSE_PORT_HTTPS=443 |
Salvare e chiudere il file .env
AVVIARE DOCKER
Per terminare la configurazione eseguire il comando:
0 |
docker-compose pull |
Dovremmo visualizzare un output simile al seguente:
0 1 2 3 4 |
[+] Pulling 48/48 ✔ worker Skipped - Image is already being pulled by server 0.0s ✔ server Pulled 31.8s ✔ postgresql Pulled 16.1s ✔ redis Pulled 10.2s |
Quindi eseguire il comando:
0 |
docker-compose up -d |
Dovremmo visualizzare un output simile al seguente:
0 1 2 3 4 5 6 7 |
[+] Running 7/7 ✔ Network authentik_default Created 0.1s ✔ Volume "authentik_database" Created 0.0s ✔ Volume "authentik_redis" Created 0.0s ✔ Container authentik-redis-1 Healthy 5.8s ✔ Container authentik-postgresql-1 Healthy 5.8s ✔ Container authentik-server-1 Started 6.0s ✔ Container authentik-worker-1 Started 5.9s |
ACCESSO ALL’INTERFACCIA WEB
Da un qualsiasi broser richiamare il link:
http://<IP_DEL_TUO_SERVER>/if/flow/initial-setup/
Da questa schermata è possibile configurare la mail e la password dell’utente predefinito akadmin
Cliccare Continue
Se è andato tutto a buon fine dovremmo visualizzare l’interfaccia di Admin di Authentik
Interfaccia con le info relative ad Authentik
A cosa serve concretamente?
1. Single Sign-On (SSO): Permette agli utenti di accedere a più applicazioni (come Nextcloud, Grafana, GitLab, Proxmox, ecc.) usando un solo login.
2. Autenticazione centralizzata: Invece di creare utenti e password in ogni servizio, puoi gestirli tutti da Authentik.
Supporta:
- Username/password
- 2FA (TOTP, WebAuthn, ecc.)
- Login social (Google, GitHub, ecc.)
- LDAP / Active Directory
3. Proxy con login: Puoi proteggere qualsiasi sito web o servizio HTTP con un reverse proxy integrato che obbliga all’autenticazione (utile per interfacce web non protette).
4. Autorizzazioni granulari: Puoi creare policy di accesso complesse, per esempio:
- Solo utenti del gruppo “admin” possono accedere a un servizio
- Accesso solo da IP interni
- Accesso limitato nel tempo
5. Provider compatibili: Supporta standard come:
- OIDC / OAuth2 (es. per login su app moderne)
- SAML (es. per servizi enterprise)
- LDAP (sia come server che come client)
Esempi d’uso reali
- Nextcloud: Login via OAuth2/LDAP
- Grafana: Login via OIDC
- Gitea/GitLab: Login centralizzato
- Home Assistant: Accesso con SSO e 2FA
- Proxmox/TrueNAS: Autenticazione con LDAP
- Portainer/Traefik: Protezione tramite proxy autenticato
Perché usarlo?
Aumenti la sicurezza (2FA, password centralizzate)
Migliori la gestione utenti
Hai un vero SSO self-hosted (no Google o Azure)
Ottieni audit log e tracciabilità degli accessi
È altamente personalizzabile
Quando non ti serve
- Se hai pochi servizi e pochi utenti (può essere “too much”).
- Se usi già un IdP esterno (Azure AD, Okta, ecc.)
- Se vuoi evitare gestione e manutenzione self-hosted.
0 commenti