Det här sätter du upp
authentik är en identitetsleverantör: den lagrar dina användare, deras lösenord och deras tvåfaktorsmetoder, och dina appar låter authentik kontrollera vem som loggar in. Varje person har ett konto för allt, och när någon slutar stänger du av ett konto i stället för ett i varje app. Apparna ansluter med OpenID Connect, SAML eller LDAP, som de flesta appar du kör själv har stöd för.
Här körs den i en pod med PostgreSQL, under en egen användare som heter authentik, bakom Caddy från Podman-guiden. Som exempel blir den inloggningen för Matrix-servern från Matrix-guiden.
Varje steg nedan har körts på en server hos Melonslab med Debian 13:
- Den första installationen gjordes via Caddy, och authentiks händelselogg visade varje besökares riktiga adress.
- En användare som skapades i administrationsgränssnittet loggade in på Matrix med enkel inloggning och fick ett Matrix-konto med sitt namn. Ett befintligt Matrix-konto kopplades på samma sätt.
- Med en autentiseringsapp uppsatt frågade inloggningen efter en kod, och en felaktig kod nekades.
- En uppladdad fil fanns kvar efter en omstart av authentik, och allt startade igen av sig självt när servern startades om.
authentik använde omkring 660 MB minne. Den behöver minst 2 GB på servern.
Innan du börjar
Du behöver:
- en server uppsatt som i Podman-guiden, med Caddy igång och minst 2 GB minne;
- en A-post och en AAAA-post för
auth.example.comsom pekar på din server.
Exemplen använder auth.example.com för authentik och 203.0.113.10 för serverns IPv4-adress, som ip -brief address show eth0 visar. Byt ut dem genomgående.
1. Skapa användaren
Som root:
useradd -m -s /bin/bash authentik
loginctl enable-linger authentik
machinectl shell authentik@
Allt fram till steg 5 körs som authentik.
2. Skapa hemligheterna
openssl rand -hex 24 | tr -d '\n' | podman secret create authentik-db-password -
openssl rand -base64 60 | tr -d '\n' | podman secret create authentik-secret-key -
Den första är databasens lösenord. Den andra är authentiks hemliga nyckel, som signerar dess sessioner och token. Ingen av dem skrivs in i filerna nedan.
3. Definiera podden
mkdir -p ~/.config/containers/systemd ~/authentik/data
podman unshare chown 1000:1000 ~/authentik/data
authentik körs som användare 1000 i sina containrar, och chown låter den användaren skriva i katalogen data, där authentik sparar filer du laddar upp, som ikoner för appar.
Skapa ~/.config/containers/systemd/authentik.pod:
[Pod]
PodName=authentik
# Only Caddy, on this server, can reach authentik: the port is not open to the internet.
PublishPort=127.0.0.1:8092:9000
ShmSize=512m
[Install]
WantedBy=default.target
Skapa ~/.config/containers/systemd/authentik-db.container:
[Container]
ContainerName=authentik-db
Image=docker.io/library/postgres:18-alpine
Pod=authentik.pod
Volume=authentik-db:/var/lib/postgresql
Environment=POSTGRES_USER=authentik POSTGRES_DB=authentik
Secret=authentik-db-password,type=env,target=POSTGRES_PASSWORD
AutoUpdate=registry
[Service]
Restart=always
Skapa ~/.config/containers/systemd/authentik-server.container:
[Unit]
After=authentik-db.service
[Container]
ContainerName=authentik-server
Image=ghcr.io/goauthentik/server:2026.8
Pod=authentik.pod
Exec=server
EnvironmentFile=%h/authentik/authentik.env
Secret=authentik-db-password,type=env,target=AUTHENTIK_POSTGRESQL__PASSWORD
Secret=authentik-secret-key,type=env,target=AUTHENTIK_SECRET_KEY
Volume=%h/authentik/data:/data
AutoUpdate=registry
[Service]
Restart=always
Skapa ~/.config/containers/systemd/authentik-worker.container:
[Unit]
After=authentik-db.service
[Container]
ContainerName=authentik-worker
Image=ghcr.io/goauthentik/server:2026.8
Pod=authentik.pod
Exec=worker
EnvironmentFile=%h/authentik/authentik.env
# The server already uses these ports in the pod.
Environment=AUTHENTIK_LISTEN__HTTP=[::]:9001 AUTHENTIK_LISTEN__METRICS=[::]:9301
Secret=authentik-db-password,type=env,target=AUTHENTIK_POSTGRESQL__PASSWORD
Secret=authentik-secret-key,type=env,target=AUTHENTIK_SECRET_KEY
Volume=%h/authentik/data:/data
AutoUpdate=registry
[Service]
Restart=always
Och ~/authentik/authentik.env, inställningarna båda delar:
AUTHENTIK_POSTGRESQL__HOST=127.0.0.1
AUTHENTIK_POSTGRESQL__USER=authentik
AUTHENTIK_POSTGRESQL__NAME=authentik
# Caddy's connections reach the pod from the server's own IPv4 address.
AUTHENTIK_LISTEN__TRUSTED_PROXY_CIDRS=203.0.113.10/32
Servern svarar på webbförfrågningar, och workern kör bakgrundsuppgifter. Båda kör samma avbild. I en pod delar de ett nätverk, så workerns två portar flyttas bort från serverns. authentik litar bara på adressen Caddy uppger för varje besökare när anslutningen kommer från adresserna i TRUSTED_PROXY_CIDRS, och med rootless Podman kommer Caddys anslutningar från serverns egen IPv4-adress.
Med taggen 2026.8 får du alla buggfixar i authentik 2026.8. Steg 10 beskriver hur du uppgraderar till nästa version.
4. Starta den
systemctl --user daemon-reload
systemctl --user start authentik-pod
Första starten laddar ner avbilderna, och sedan sätter authentik upp sin databas, vilket tog omkring tre minuter på vår testserver. Kontrollera om authentik är redo:
curl -s -o /dev/null -w '%{http_code}\n' http://127.0.0.1:8092/-/health/ready/
Kommandot visar 503 medan authentik fortfarande startar och 200 när den är klar. Fram till dess visar workerns logg varningar om saknade tabeller, men de försvinner av sig själva.
5. Sätt Caddy framför
Gå tillbaka till root med exit, byt till machinectl shell caddy@ och lägg till det här blocket sist i ~/Caddyfile:
auth.example.com {
reverse_proxy 127.0.0.1:8092
}
Starta om Caddy med systemctl --user restart caddy.
6. Skapa administratörskontot
Öppna https://auth.example.com. authentik visar sin första installationssida för administratören akadmin. Ange din e-postadress och ett starkt lösenord två gånger. Fältet Base URL är redan ifyllt: kontrollera att det är https://auth.example.com och välj Continue.
Logga sedan in som akadmin med lösenordet du just valde. Administrationsgränssnittet finns på https://auth.example.com/if/admin/.
7. Lägg till dina användare
I administrationsgränssnittet:
- Öppna Directory, sedan Users, och välj New User.
- Välj Internal User och ange ett Username, ett Display Name och en Email Address. Välj Create.
- Välj den nya användaren i listan. Välj Set password under Recovery, ange ett lösenord och välj Set Password.
Personen loggar in på https://auth.example.com och kan byta lösenordet under kugghjulsikonen, i User details.
8. Slå på tvåfaktorsautentisering
Var och en gör det här för sitt eget konto, en gång. Välj kugghjulsikonen på https://auth.example.com och sedan Credentials. Välj Enroll under MFA Devices och sedan TOTP Device. Skanna QR-koden med en autentiseringsapp, till exempel den som finns i mobilens lösenordshanterare, och ange koden den visar.
Från och med då frågar authentik efter en kod från appen efter lösenordet. Samma meny har WebAuthn device, för passkeys och säkerhetsnycklar, och Static tokens, engångskoder att skriva ut och spara ifall mobilen försvinner.
9. Anslut en app
Varje app får en application och en provider i authentik. Här är appen Matrix: då loggar man in i Element med sitt authentik-konto. I administrationsgränssnittet:
- Öppna Applications, sedan Applications, och välj New Application.
- Ange
Matrixsom Application Name och välj Next. - Välj OAuth2/OpenID Provider och Next.
- Sätt Authorization Flow till default-provider-authorization-implicit-consent, som loggar in utan att fråga om appen ska godkännas varje gång.
- Kopiera Client ID och Client Secret.
- Välj Add entry under Redirect URIs/Origins, behåll Strict och ange
https://matrix.example.com/_synapse/client/oidc/callback. - Välj Next två gånger, sedan Create Application och Finish.
Utan något under Configure Bindings kan varje användare i authentik logga in i appen. authentiks adress för appen är https://auth.example.com/application/o/matrix/, med namnet i gemener.
Som root byter du sedan till machinectl shell matrix@ och lägger till det här i ~/matrix/synapse.yaml, med id:t och hemligheten du kopierade:
oidc_providers:
- idp_id: authentik
idp_name: authentik
discover: true
issuer: "https://auth.example.com/application/o/matrix/"
client_id: "CLIENT_ID"
client_secret: "CLIENT_SECRET"
scopes: ["openid", "profile", "email"]
allow_existing_users: true
user_mapping_provider:
config:
localpart_template: "{{ user.preferred_username }}"
display_name_template: "{{ user.name }}"
authentik körs på samma server, så Synapse måste nå den via servern i stället för inne i sin egen pod, som i Podman-guiden. Lägg till den här raden i ~/.config/containers/systemd/matrix.pod, under PublishPort:
AddHost=auth.example.com:host-gateway
Starta sedan om Matrix:
systemctl --user daemon-reload
systemctl --user restart matrix-pod
Elements inloggningssida har nu Continue with authentik. Den som loggar in för första gången får ett Matrix-konto med sitt användarnamn från authentik, till exempel @bob:example.com. Med allow_existing_users: true loggar en authentik-användare med samma namn som ett befintligt Matrix-konto in på det kontot, så slå bara på det om namnen i authentik hör till samma personer som i Matrix.
Andra appar följer samma steg, med omdirigeringsadressen från appens egen dokumentation. authentiks dokumentation har en sida för många av dem.
10. Håll den uppdaterad
Slå på Podmans dagliga uppdateringar som authentik:
systemctl --user enable --now podman-auto-update.timer
Då uppdateras authentik automatiskt till den senaste versionen av 2026.8, och PostgreSQL till den senaste av 18. authentik släpper en ny version med några månaders mellanrum, till exempel 2026.11. Uppgradera en version i taget utan att hoppa över någon, eftersom authentik inte kan gå tillbaka till en äldre version: läs versionsanteckningarna, säkerhetskopiera som i steg 11, ändra taggen i både authentik-server.container och authentik-worker.container, och kör systemctl --user daemon-reload och systemctl --user restart authentik-pod.
11. Säkerhetskopiera
Som authentik:
mkdir -p ~/backup
podman exec authentik-db pg_dump -U authentik authentik > ~/backup/authentik-db.sql
tar -czf ~/backup/authentik-data.tar.gz -C ~/authentik data
podman secret inspect --showsecret --format '{{.SecretData}}' authentik-secret-key > ~/backup/authentik-secret-key
Databasen innehåller användarna, deras lösenord och tvåfaktorsmetoder, och varje application. Den hemliga nyckeln behövs för att återställa den. Kopiera ~/backup till en annan maskin och förvara den säkert.
Felsökning
Inloggningen i en app misslyckas, och https://auth.example.com/application/o/matrix/.well-known/openid-configuration visar adresser som börjar med http://. authentik litar inte på Caddy. Kontrollera att AUTHENTIK_LISTEN__TRUSTED_PROXY_CIDRS i steg 3 är serverns IPv4-adress och starta om med systemctl --user restart authentik-server.
Den första installationssidan visar Not Found. authentik håller fortfarande på att sätta upp sig. Vänta en minut efter att hälsokontrollen i steg 4 svarar 200 och öppna https://auth.example.com igen.
Synapse når inte authentik. Raden AddHost från steg 9 saknas i matrix.pod, eller anger ett annat värdnamn.