97 lines
1.9 KiB
Markdown
97 lines
1.9 KiB
Markdown
# ADR 0006 — Auth-Strategie
|
|
|
|
## Status
|
|
Accepted
|
|
|
|
## Kurz erklärt
|
|
Auth bedeutet Authentifizierung und Autorisierung.
|
|
|
|
Authentifizierung beantwortet:
|
|
|
|
```text
|
|
Wer bist du?
|
|
```
|
|
|
|
Autorisierung beantwortet:
|
|
|
|
```text
|
|
Was darfst du?
|
|
```
|
|
|
|
## Kontext
|
|
Das System benötigt mehrere Zugriffstypen:
|
|
|
|
- Admin-Login
|
|
- Mitarbeiter-Login
|
|
- Kundenlogin später
|
|
- API-Zugriffe
|
|
- Integrationen
|
|
- später WordPress-Plugin
|
|
|
|
Das Architekturreview hat kritisiert, dass „Tokenbasiert, später OAuth/Sanctum“ zu unscharf ist.
|
|
|
|
## Entscheidung
|
|
V1 verwendet Laravel Sanctum als Auth-Basis.
|
|
|
|
Sanctum wird genutzt für:
|
|
|
|
- Admin-/Backoffice-Login
|
|
- interne API
|
|
- Personal Access Tokens für technische Clients
|
|
- spätere einfache API-Zugriffe
|
|
|
|
OAuth2/Passport wird nicht in V1 eingeführt.
|
|
|
|
## Warum Sanctum?
|
|
Sanctum ist für V1 passend, weil:
|
|
|
|
- es Laravel-nah ist
|
|
- wenig Overhead erzeugt
|
|
- API-Tokens unterstützt
|
|
- SPA-/Frontend-Sessions unterstützt
|
|
- für ein kleines V1-Team einfacher beherrschbar ist
|
|
|
|
## OAuth2 später
|
|
OAuth2 kann später relevant werden für:
|
|
|
|
- Drittanbieter-Apps
|
|
- öffentliches Plugin-Ökosystem
|
|
- externe Entwickler
|
|
- komplexere WordPress-Plugin-Szenarien
|
|
|
|
## Rechteprüfung
|
|
Auth allein reicht nicht.
|
|
|
|
Jeder Zugriff benötigt zusätzlich:
|
|
|
|
- Tenant-Kontext
|
|
- Rollenprüfung
|
|
- Policy-Prüfung
|
|
- Auditierbarkeit bei kritischen Aktionen
|
|
|
|
## MFA
|
|
MFA bedeutet Multi-Faktor-Authentifizierung.
|
|
|
|
Für V1 gilt:
|
|
|
|
- MFA für Superadmins empfohlen
|
|
- MFA für normale Kunden optional später
|
|
- WebAuthn kann später geprüft werden
|
|
|
|
## Konsequenzen
|
|
|
|
### Positiv
|
|
- einfacher Einstieg
|
|
- Laravel-nah
|
|
- gut für V1
|
|
- weniger Komplexität
|
|
|
|
### Negativ
|
|
- für öffentliche Drittanbieter-Ökosysteme später eventuell nicht ausreichend
|
|
- OAuth2 muss ggf. später zusätzlich eingeführt werden
|
|
|
|
## Verwandte ADRs
|
|
- ADR 0004 — Tenancy-Modell
|
|
- ADR 0012 — Frontend-Strategie
|
|
- ADR 0018 — WordPress-Plugin-Security
|