Terraform für Authentik einrichten¶
Ungeprüft
Diese Anleitung ist noch nicht durchgespielt worden; Befehle, Bezeichnungen und erwartete Ausgaben können abweichen.
Was noch zu prüfen ist, steht in todo/doku.md.
Ziel¶
Terraform kann sich mit einem neuen API-Token an Authentik anmelden, und der State in apps/authentik/tf-core/ passt zu Authentik.
Voraussetzungen¶
- Admin-Zugang zur Admin-Oberfläche von Authentik
- dein Rechner ist eingerichtet, Terraform installiert (Arbeitsrechner einrichten)
- gelesen: Authentik, Terraform und Terraform ausführen
Nötig ist das, wenn Authentik neu aufgesetzt wird oder das Token von terraform-mgmt getauscht werden muss.
Für einen Tausch reichen die Schritte 1 bis 3.
Schritte¶
1. Service-Account anlegen¶
Leg in der Admin-Oberfläche von Authentik unter Directory → Users mit „Create Service Account“ den Service-Account terraform-mgmt an.
Erwartet: Authentik zeigt den Benutzernamen und ein Token an. Dieses Token ist ein App-Passwort; Terraform braucht ein API-Token (Schritt 2).
Gibt es den Account schon, weil du nur das Token tauschst, überspring diesen Schritt.
2. Token auf API-Token umstellen¶
Öffne unter Directory → Tokens and App passwords das Token von terraform-mgmt, stell „Intent“ von „App password“ auf „API Token“ um und speichere.
Kopiere das Token dann mit „Copy token“.
Erwartet: In der Liste steht beim Token von terraform-mgmt als Intent „API Token“.
3. Token ablegen¶
Leg das Token im Vaultwarden ab und trag es in deine .envrc als TF_VAR_authentik_token ein, wie in Arbeitsrechner einrichten, Schritt 9.
Sag allen anderen Admins Bescheid, dass sie es in ihrer .envrc ebenfalls tauschen müssen.
| Bash | |
|---|---|
Erwartet: gesetzt, nach init Terraform has been successfully initialized!, und plan meldet keinen 401 oder 403.
Hast du nur das Token getauscht, zeigt plan No changes. Your infrastructure matches the configuration., und du bist fertig.
4. System-Einstellungen und Brand importieren¶
Nur bei einem neu aufgesetzten Authentik mit leerem State. Authentik hat genau einen Satz System-Einstellungen und legt die Standard-Brand selbst an; Terraform kann beides nicht neu anlegen, sondern muss die vorhandenen übernehmen.
Die ID der Brand findest du in der Admin-Oberfläche unter System → Brands, beim Eintrag authentik-default.
| Bash | |
|---|---|
Erwartet: beide Male Import successful!.
5. Alles andere ausrollen¶
Erwartet: plan legt alle übrigen Resources an und ändert die System-Einstellungen und die Brand auf die Werte aus main.tf; apply endet mit Apply complete!.
Danach dasselbe in apps/authentik/tf-groups/, und den State aus beiden Ordnern committen und pushen wie in Terraform ausführen, Schritt 9.
Prüfen¶
terraform planzeigt intf-coreundtf-groupsNo changes. Your infrastructure matches the configuration.- Die Login-Seite unter https://login.garage-lab.de zeigt Titel und Logo aus der Brand.
Wenn etwas schiefgeht¶
- plan meldet
401oder403: Das Token ist noch ein App-Passwort, oder es ist falsch kopiert; prüf Schritt 2. - apply meldet beim Anlegen der System-Einstellungen oder der Brand einen Fehler, weil es sie schon gibt: Der Import in Schritt 4 fehlt.
- Allgemeines: Authentik-Doku, Authentik-Provider in der Terraform Registry und terraform import