# 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