Autorisierung
Autorisierung ist der Vorgang, bei dem bestimmt wird, welche Ressourcen und Aktionen einem Nutzer, einer Anwendung, einem Gerät oder einer anderen Instanz nach der Feststellung ihrer Identität zur Verfügung stehen. Das System prüft die zugewiesenen Berechtigungen und entscheidet beispielsweise, ob ein Nutzer eine Datei öffnen, einen Datenbankeintrag ändern, einen administrativen Vorgang ausführen oder auf eine bestimmte API zugreifen darf.
Die Autorisierung ist einer der grundlegenden Mechanismen der Zugriffskontrolle. Sie wird in Betriebssystemen, Unternehmensanwendungen, Datenbanken, auf Cloud-Plattformen, in Netzwerkinfrastrukturen, APIs und weiteren IT-Systemen eingesetzt.
Die Autorisierung ist eng mit der Authentifizierung verbunden, doch es handelt sich um unterschiedliche Vorgänge. Die Authentifizierung beantwortet die Frage „Wer sind Sie?“, während die Autorisierung beantwortet, „Was dürfen Sie tun?“
Wie funktioniert die Autorisierung?
Im typischen Fall erfolgt die Autorisierung nach der Authentifizierung. Das System stellt zunächst die Identität des Nutzers fest und prüft anschließend, welche Berechtigungen mit seinem Konto, seiner Rolle oder anderen Attributen verknüpft sind.
Vereinfacht sieht der Ablauf so aus:
Identifizierung → Authentifizierung → Autorisierung → Zugriff auf eine Ressource
Melden sich beispielsweise zwei Mitarbeiter erfolgreich am selben Unternehmenssystem an, hat der erste eine Standard-Nutzerrolle und kann die Dokumente seiner Abteilung einsehen. Der zweite ist Administrator und kann zusätzlich Konten anlegen und Systemeinstellungen ändern. Beide Nutzer wurden authentifiziert, doch die Autorisierung räumt ihnen unterschiedliche Zugriffsrechte ein.
Bei jeder Anfrage an eine geschützte Ressource kann die Anwendung die einschlägigen Zugriffsrichtlinien auswerten und den angeforderten Vorgang zulassen oder verweigern.
Worauf basiert die Autorisierung?
Ein System kann Zugriffsentscheidungen anhand verschiedener Parameter treffen. Der konkrete Mechanismus hängt vom eingesetzten Zugriffskontrollmodell ab.
Zu den gängigen Ansätzen gehören:
- RBAC (Role-Based Access Control) — Berechtigungen werden Rollen zugewiesen, und Nutzer erhalten die entsprechenden Rollen;
- ABAC (Attribute-Based Access Control) — Zugriffsentscheidungen basieren auf Attributen von Nutzer, Ressource, Aktion und Kontext;
- ACL (Access Control List) — ein Objekt verfügt über eine Liste, die festlegt, welche Instanzen darauf zugreifen und welche Vorgänge sie ausführen dürfen;
- ReBAC (Relationship-Based Access Control) — Berechtigungen ergeben sich aus den Beziehungen zwischen einer Instanz und einer Ressource.
Bei RBAC kann einem Mitarbeiter beispielsweise die Rolle Editor zugewiesen werden, die es ihm erlaubt, Inhalte zu erstellen und zu ändern, nicht jedoch Nutzer zu verwalten. Bei ABAC kann der Zugriff zusätzlich von der Abteilung des Mitarbeiters, vom Dokumententyp oder von anderen Attributen abhängen.
Berechtigungen und das Prinzip der geringsten Rechte
Die Autorisierung basiert auf Berechtigungen — konkreten Rechten zur Ausführung bestimmter Vorgänge. Dazu können das Lesen, Erstellen, Ändern oder Löschen von Daten, das Ausführen bestimmter Befehle, die Verwaltung von Einstellungen und weitere Aktionen gehören.
Autorisierungssysteme werden häufig nach dem Prinzip der geringsten Rechte (Principle of Least Privilege, PoLP) gestaltet. Ein Nutzer oder eine Anwendung sollte nur die Berechtigungen erhalten, die zur Erfüllung der jeweiligen Aufgaben erforderlich sind.
So sollte eine Anwendung, die lediglich Daten aus einer bestimmten Speicherressource lesen muss, keine Berechtigung zum Löschen dieser Daten erhalten. Die Begrenzung von Privilegien verringert die möglichen Auswirkungen, falls ein Konto oder eine Softwarekomponente kompromittiert wird.
Autorisierung in APIs und Webanwendungen
In Webdiensten wird die Autorisierung häufig mithilfe von Tokens umgesetzt. Nach erfolgreicher Authentifizierung kann ein System ein Token ausstellen, das die Informationen enthält oder repräsentiert, die zur Bestimmung der zulässigen Zugriffsebene des Clients erforderlich sind.
Beim Zugriff auf eine API sendet der Client das Token, und der Server prüft, ob der angeforderte Vorgang zulässig ist. Berechtigungen können über Rollen, Scopes, Claims und Zugriffsrichtlinien bestimmt werden.
OAuth 2.0 wird in diesem Zusammenhang häufig als Framework für delegierte Autorisierung eingesetzt. Es ermöglicht es einer Anwendung, im Namen eines Nutzers oder in einem anderen unterstützten Kontext eingeschränkten Zugriff auf Ressourcen zu erhalten, ohne dass der Nutzer der Anwendung sein Passwort mitteilen muss.
Wichtig ist, dass OAuth 2.0 in erster Linie ein Autorisierungs-Framework ist. OpenID Connect (OIDC) wird üblicherweise auf OAuth 2.0 aufgesetzt, um die Nutzerauthentifizierung bereitzustellen.
Autorisierung in Cloud-Infrastrukturen
In Cloud-Umgebungen ist die Autorisierung Teil von Systemen für Identity and Access Management (IAM). IAM wird genutzt, um Berechtigungen für Nutzer, Gruppen, Anwendungen, Dienstkonten und weitere Identitäten festzulegen.
So kann ein Administrator einem Mitarbeiter erlauben, virtuelle Maschinen nur anzusehen, einem anderen, sie zu erstellen und zu löschen, während ein automatisierter Dienst ausschließlich Zugriff auf eine bestimmte Speicherressource erhält.
Moderne Systeme können außerdem den Kontext einer Anfrage berücksichtigen, statt sich allein auf statische Berechtigungen zu stützen. Dazu können das genutzte Gerät, das Netzwerk, die Uhrzeit, das Risikoniveau oder weitere Bedingungen zählen. Dieser Ansatz kommt unter anderem bei der Umsetzung von Zero-Trust-Richtlinien zum Einsatz.
Authentifizierung und Autorisierung: Worin besteht der Unterschied?
Diese Begriffe werden häufig gemeinsam verwendet, erfüllen jedoch unterschiedliche Zwecke:
- Die Authentifizierung überprüft die Identität. Ein Nutzer weist nach, dass er der rechtmäßige Inhaber eines bestimmten Kontos ist, etwa durch die Eingabe eines Passworts und eines zweiten Authentifizierungsfaktors.
- Die Autorisierung setzt auf einer bereits festgestellten Identität auf und bestimmt deren Berechtigungen. Das System entscheidet, auf welche Daten und Funktionen der Nutzer zugreifen darf.
Beispielsweise meldet sich ein Mitarbeiter mit Passwort und Einmalcode erfolgreich an, erhält aber trotzdem keinen Zugriff auf die Gehaltsabrechnungen, weil ihm die entsprechende Rolle fehlt.
Eine erfolgreiche Authentifizierung bedeutet daher keinen uneingeschränkten Zugriff. Ein Nutzer kann sich erfolgreich anmelden und dennoch keinen Zugriff auf eine Ressource erhalten, für die ihm die erforderlichen Berechtigungen fehlen.
FAQ
Autorisierung ist die Prüfung von Zugriffsberechtigungen. Nachdem die Identität eines Nutzers festgestellt wurde, bestimmt das System, auf welche Ressourcen er zugreifen und welche Aktionen er ausführen darf.
Die Authentifizierung überprüft die Identität eines Nutzers oder einer anderen Instanz. Die Autorisierung bestimmt, was eine bereits authentifizierte Instanz tun darf.
Role-Based Access Control (RBAC) ist ein Modell, bei dem Berechtigungen Rollen wie Administrator, Editor oder Betrachter zugewiesen werden und Nutzer den Zugriff über die ihnen zugewiesenen Rollen erhalten.
Das Prinzip der geringsten Rechte bedeutet, einem Nutzer oder einer Anwendung nur die minimal erforderlichen Berechtigungen zur Erfüllung der jeweiligen Aufgaben zu gewähren.
OAuth 2.0 ist in erster Linie für Autorisierung und delegierten Zugriff konzipiert. OpenID Connect (OIDC) wird üblicherweise auf OAuth 2.0 aufgesetzt, um die Nutzerauthentifizierung bereitzustellen.