# Authentik (SSO): 2-Faktor-Authentifizierung erzwingen

:::warning
**Achtung** - Testet eure bearbeiteten Login-Flows ausführlich bevor ihr die 2-Faktor-Authentifizierung auch für euren Admin-User erzwingt – bzw. bleibt so lange eingelogged, bis ihr sicher seid, dass alles funktioniert.

:::

In Authentik kann die Zwei-Faktor-Authentifizierung **für alle** recht einfach erzwungen werden, indem im Flow `default-authentication-flow` , welcher der *Überprüfung* einer bereits (freiwillig) eingerichteten Multi-Faktor-Authentifizierung dient, die Einstellung von `weiter` auf `Benutzer auffordern einen Authenticator einzurichten` stellt und in den `Konfiguration Stages` mindetens eine Stage auswählt, um einen solchen Faktor einzurichten.

 ![](https://wiki.local-it.org/api/files.get?sig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ1cGxvYWRzLzJiZjkwM2M4LWEyNjItNDA0My1iYTQzLWE1ZWEzNDNmMmRjMC8yODljNGM1Mi1jYTY2LTQ1MDctYjE1Yi1jNmRhZmE5NDViYjAvZ3JhZmlrLnBuZyIsInR5cGUiOiJhdHRhY2htZW50IiwiaWF0IjoxNzk0NjE3MTAwLCJleHAiOjE3OTQ3MDM1MDB9.QRZhNAcADcSqh6Vl_lt_gRyan1tsxMArTId95pcVqz4 " =1057x167")

## Zwei-Faktor-Authentifizierung nur für eine Gruppe

Um die 2FA nur für eine Gruppe zu erzwingen, müsst ihr 


1. Leg eine Gruppe an, z.B. `erzwinge_2fa` (Diese Gruppe kann dann eine übergeordnete Parent-Gruppe sein für alle Gruppen, für die ihr 2FA erzwingen möchtet)
2. neben dem `default-authentication-flow` einen zweiten anlegen, der genau die oben erwähnte Einstellung hat (der erste bleibt dann auf `Weiter` eingestellt). Wir nennen ihn z.B. `custom-authentication-mfa-validation-enforce`.
3. Diesen müsst ihr nun dem Standard-Authentifizierungs-Flow `default-authentication-flow` hinzufügen:


4. ![](https://wiki.local-it.org/api/files.get?sig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ1cGxvYWRzLzJiZjkwM2M4LWEyNjItNDA0My1iYTQzLWE1ZWEzNDNmMmRjMC8wM2ExYzM5MS1kNDliLTRlN2QtYjQwNC1mYjk5OWQ1NjI2OTkvZ3JhZmlrLnBuZyIsInR5cGUiOiJhdHRhY2htZW50IiwiaWF0IjoxNzk0NjE3MTAwLCJleHAiOjE3OTQ3MDM1MDB9.-MXWPjya4eVQFcXVFfpo5dvb5FzbmU2gdjja4EFxN6s " =1503x261")Wichtig nun: Ihr müsst die jeweiligen Bindings der Stages so bearbeiten, dass die enforce-Stage nur für die Gruppe `erzwinge_2fa` ausgeführt wird. Und die die default-Stage wiederum NICHT für diese Gruppe ausgeführt wird.   
   Das erreicht ihr für das Binding der  `custom-authentication-mfa-validation-enforce`-Stage so:

   ![](https://wiki.local-it.org/api/files.get?sig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ1cGxvYWRzLzJiZjkwM2M4LWEyNjItNDA0My1iYTQzLWE1ZWEzNDNmMmRjMC9lMmFhMzIzYy1jMDNhLTQ5ZGYtYWNjYy00ZTZkZWM2MTE4MGEvZ3JhZmlrLnBuZyIsInR5cGUiOiJhdHRhY2htZW50IiwiaWF0IjoxNzk0NjE3MTAwLCJleHAiOjE3OTQ3MDM1MDB9.MCm2J05AICxAiU2hGK_oFSIuwHNP7W_00O-9IyILm2Q " =862x361")  
   Und für die `default-authentication-mfa-validation`-Stage so:

   ![](https://wiki.local-it.org/api/files.get?sig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ1cGxvYWRzLzJiZjkwM2M4LWEyNjItNDA0My1iYTQzLWE1ZWEzNDNmMmRjMC81OTdhNzllMi1kZjE2LTQ0MjgtYTFmMC05NTk0YjM5N2VmYTkvZ3JhZmlrLnBuZyIsInR5cGUiOiJhdHRhY2htZW50IiwiaWF0IjoxNzk0NjE3MTAwLCJleHAiOjE3OTQ3MDM1MDB9.LmDlmMaSnoKITSh6q6MA8yz4aAU3u0u7viQfA2UJqPI " =862x361")



:::warning
WICHTIG: Wenn ihr noch andere Richtlinien in den Bindings der Stages habt, dann stellt sicher, dass **ALLE** erfüllt sein müssen. Sonst kann es sein, dass beide Flows hintereinander ausgeführt werden, was in Tests zu seltsamen ungültigen 2-Faktor-Authentifizierungsversuchen führte

 ![](https://wiki.local-it.org/api/files.get?sig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ1cGxvYWRzLzJiZjkwM2M4LWEyNjItNDA0My1iYTQzLWE1ZWEzNDNmMmRjMC9iZjkxNGU3OC1mMDgyLTRiY2EtOWExNS1mODY2ZTdmNDNkZjgvZ3JhZmlrLnBuZyIsInR5cGUiOiJhdHRhY2htZW50IiwiaWF0IjoxNzk0NjE3MTAwLCJleHAiOjE3OTQ3MDM1MDB9.WUpdEC511LYpEAw87Y9PHloL0kWTx6ZtcEoSVHdZChM " =1512x422")

:::


Fertig. Alle User\*innen die in einer Gruppe sind, die wiederum der `erzwinge_2fa` Gruppe untergeordnet ist, werden nun beim Login aufgefordert eine Mehrfaktorauthentifizierung einzurichten.


## Zugang wiederherstellen

Sofern ihr SSH-Zugriff auf den Server habt, könnt ihr den Zugang via recovery-link zurückerlangen:

```yaml
abra app run login.<DOMAIN> app ak "create_recovery_key" "akadmin"
```

---

**Documents**

- [User:innen Guide](https://wiki.local-it.org/s/kollicloud-wiki/doc/userinnen-guide-zUit9qbRxm)
- [Selfhosting Guide](https://wiki.local-it.org/s/kollicloud-wiki/doc/selfhosting-guide-1xZJt8UIha)
- [Kollektivhosting](https://wiki.local-it.org/s/kollicloud-wiki/doc/kollektivhosting-9uzforQcz4)
- [FAQ zur KolliCloud](https://wiki.local-it.org/s/kollicloud-wiki/doc/faq-zur-kollicloud-1XlLVf5QpO)
- [Technik-Glossar](https://wiki.local-it.org/s/kollicloud-wiki/doc/technik-glossar-mqY0TUfkKy)