Diese beiden Konzepte werden ständig vermischt, und genau in dieser Vermischung entstehen Sicherheitslücken. Dass ein Nutzer eingeloggt (authentifiziert) ist, sagt nichts darüber aus, auf welche Datensätze, Aktionen oder Konten er zugreifen dürfen sollte (Autorisierung).
Wo beide ansetzen
| Aspekt | Authentifizierung | Autorisierung |
|---|---|---|
| Beantwortete Frage | Wer ist das? | Was darf diese Person tun? |
| Wann es läuft | Einmalig beim Login (plus Session-Validierung) | Bei jeder sicherheitsrelevanten Anfrage |
| Gängige Mechanismen | Passwort + Hash, Magic Link, OAuth/SSO, MFA | Rollen, Berechtigungen, Eigentümerprüfungen, Policies |
| Ausfallmodus | Identitätsdiebstahl, Credential Stuffing | Datenlecks über Konten hinweg, Rechteausweitung |
Gängige Authentifizierungsmuster
- Passwort + sicheres Hashing — nach wie vor Standard, erfordert korrektes Hashing (bcrypt/argon2), Rate-Limiting und breach-bewusste Validierung
- Magic Links / Einmalcodes — erspart Passwortverwaltung, gute Wahl für reibungsarme B2B- und Portal-Logins
- OAuth / SSO — delegiert die Identität an einen vertrauenswürdigen Anbieter (Google, Microsoft, einen unternehmenseigenen IdP); reduziert Passwortwildwuchs bei B2B-Software
- Multi-Faktor-Authentifizierung (MFA) — ein zusätzlicher Faktor über Wissen hinaus; Standard für Admin- und Finanzzugriffe
Gängige Autorisierungsmuster
- Rollenbasierte Zugriffskontrolle (RBAC) — Berechtigungen an Rollen geknüpft, Rollen an Nutzer geknüpft; skaliert gut für interne Tools und B2B-Produkte
- Attributbasierte Zugriffskontrolle (ABAC) — Berechtigungen werden aus Attributen berechnet (Abteilung, Region, Projekt) statt aus festen Rollen; flexibler, aber komplexer
- Eigentümerbasierte Prüfungen — ein Nutzer darf nur auf eine Ressource zugreifen, wenn er sie besitzt oder zu ihrem Konto gehört; das Standardmuster für Client Portals und Multi-Tenant-SaaS
// Falsch: vertraut einer vom Client übermittelten ID
async function getInvoice(invoiceId: string, accountId: string) {
return db.invoice.findFirst({ where: { id: invoiceId, accountId } });
}
// Richtig: leitet das Konto aus der authentifizierten Session ab
async function getInvoice(invoiceId: string, session: Session) {
return db.invoice.findFirst({
where: { id: invoiceId, accountId: session.accountId },
});
}
Eine praktische Checkliste
Trennen Sie beide Belange im Code
Authentifizierungs-Middleware bestätigt die Identität und hängt eine Session an. Autorisierungsprüfungen laufen explizit pro Ressource, niemals allein aus einer Rolle abgeleitet.
Scopen Sie jede Abfrage über die authentifizierte Session
Akzeptieren Sie niemals eine Konto-, Tenant- oder Eigentümer-ID aus Client-Eingaben für Zugriffsentscheidungen.
Wählen Sie zuerst RBAC, fügen Sie ABAC nur hinzu, wenn Rollen nicht mehr passen
Die meisten Produkte wachsen nie aus Rollen heraus. Attributbasierte Regeln bringen echte Komplexität mit; verdienen Sie sich diese, bevor Sie sie einführen.
Protokollieren Sie Autorisierungsfehler
Wiederholte Autorisierungsfehler von einem Konto sind ein Signal, das eine Warnung wert ist, nicht stillschweigend ignoriert zu werden.
FAQ
FAQ
Was ist der Unterschied zwischen Authentifizierung und Autorisierung?+
Authentifizierung überprüft die Identität: Sie bestätigt, dass ein Nutzer wirklich ist, wer er vorgibt zu sein, typischerweise per Passwort, Magic Link oder SSO. Autorisierung erfolgt danach und legt fest, was ein authentifizierter Nutzer sehen oder tun darf.
Kann es Autorisierung ohne Authentifizierung geben?+
Nicht sinnvoll. Autorisierungsentscheidungen hängen davon ab, zu wissen, wer eine Anfrage stellt. Ohne Authentifizierung kann ein System nur allen dieselbe öffentliche Zugriffsebene gewähren.
Was ist rollenbasierte Zugriffskontrolle (RBAC)?+
RBAC ist ein Autorisierungsmodell, das Berechtigungen Rollen zuweist (Admin, Editor, Betrachter) statt einzelnen Nutzern, und Nutzer dann diesen Rollen zuordnet. Es skaliert besser als Berechtigungen pro Nutzer, wenn ein Team oder Kundenstamm wächst.
Verwandte Ressourcen
Technische Schulden: Wie Sie sie erkennen, messen und abbauen
Eine praktische Definition technischer Schulden, wie Sie bewusste Kompromisse von unbeabsichtigtem Verfall unterscheiden, und ein wiederholbarer Prozess, um sie abzubauen, ohne die Feature-Arbeit zu stoppen.
EngineeringWebsite-Architektur erklärt: Ebenen, Muster und wie Sie die richtige wählen
Was Website-Architektur tatsächlich bedeutet, welche Ebenen dazugehören, die wichtigsten Muster von heute und ein praktisches Framework, um anhand echter Rahmenbedingungen die richtige Wahl zu treffen.
EngineeringWas ist ein Client Portal? Definition, Architektur und wann Sie eines brauchen
Eine klare Definition von Client Portals, wie sie sich von Websites und SaaS-Produkten unterscheiden, und welche Architekturentscheidungen für sichere B2B-Bereitstellung zählen.
Newsletter
Produktnotizen, kein Rauschen.
Gelegentliche Frameworks zu Portalen, SaaS-MVPs und Automatisierung.