Autorisierung (englisch Authorization, kurz AuthZ) legt fest, was ein Nutzer in einem System tun darf. Sie folgt in der Regel auf die Authentifizierung: Erst wird die Identität geprüft („Wer bist du?“), dann entscheidet die Autorisierung über Zugriffsrechte („Was darfst du?“).
Grundkonzepte
- Rollen (RBAC): Rechte werden Rollen zugeordnet (z. B. Besucher, Redakteur, Admin) und Nutzer erhalten eine oder mehrere Rollen.
- Berechtigungen/Permissions: Feingranulare Rechte wie „Artikel erstellen“ oder „Server neu starten“.
- Zugriffskontrolllisten (ACL): Listen, die pro Objekt oder Ressource festlegen, wer zugreifen darf.
- Policies: Regeln, die Zugriffe an Bedingungen knüpfen (z. B. Zeitfenster, IP-Bereich).
Beispiele aus der Praxis
- Betriebssysteme: Linux-Dateirechte (Lesen/Schreiben/Ausführen) pro Benutzer und Gruppe.
- Datenbanken: GRANT-Rechte legen fest, wer Tabellen lesen oder ändern darf.
- Web-Anwendungen: Rollen wie Admin, Editor oder Besucher steuern Menü- und Funktionsumfang.
- APIs: OAuth-Scopes und JWT-Claims schränken ein, welche Dienste ein Token aufrufen darf.
Wichtige Prinzipien
- Least Privilege: Jeder Nutzer erhält nur die Rechte, die er für seine Aufgabe wirklich braucht.
- Zero Trust: Vertraue keiner Anfrage automatisch — prüfe bei jedem Zugriff erneut (Zero-Trust-Modell).
- Security by Design: Berechtigungskonzepte von Anfang an mitdenken (Security by Design).
Authentifizierung vs. Autorisierung
Die beiden Begriffe werden oft verwechselt: Die Authentifizierung beantwortet „Wer bist du?“, die Autorisierung „Was darfst du?“. Ein Beispiel: Der Login klappt (Authentifizierung erfolgreich), aber der Zugriff auf die Admin-Seite wird verweigert, weil die Rolle keine Admin-Rechte enthält (Autorisierung abgelehnt). Zentrale Anmeldeverfahren wie Single Sign-On trennen die beiden Schritte häufig bewusst: Die Authentifizierung läuft zentral, die Autorisierung entscheidet die jeweilige Anwendung.