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.