Was ist AuthZ (Autorisierung)?
Erforsche die Definition von AuthZ, AuthN vs. AuthZ, wie AuthZ funktioniert und die besten Praktiken für die Autorisierung.
Was ist AuthZ und wie unterscheidet es sich von AuthN?
AuthZ ist die Abkürzung für Autorisierung. Autorisierung ist ein separates Mechanismus von der Authentifizierung. Während die Authentifizierung bestimmt, wer du bist, legt die Autorisierung fest, ob du auf bestimmte Ressourcen zugreifen und welche Aktionen du auf ihnen ausführen kannst.
In realen Beispielen können Ressourcen Software, Systeme, Dokumente, Bestellungen und Vermögenswerte umfassen. Die Autorisierung fügt eine zusätzliche Kontrollschicht hinzu, die spezifiziert, wer auf diese Ressourcen zugreifen kann und unter welchen Bedingungen.
Wie funktioniert AuthZ?
Autorisierung ist von der Authentifizierung getrennt, ist jedoch oft mit dieser verbunden. Zum Beispiel integrieren Standardprotokolle wie OAuth 2.0, OIDC und SAML tokenbasierte Autorisierungsmechanismen.
In einem tokenbasierten Autorisierungssystem gewährt ein Autorisierungsserver den Nutzern ein Zugriffstoken. Dieses Token, das Berechtigungen enthält, bestimmt, ob der Nutzer auf bestimmte Ressourcen zugreifen kann.
Berechtigungen direkt an Nutzer zu vergeben, kann ineffizient sein, besonders wenn detailliertere Bedingungen erforderlich sind. Der Zugriff könnte beispielsweise von spezifischen Umständen abhängen, wie dem Standort des Nutzers, was Zugangskontrollrichtlinien für eine bessere Berechtigungsverwaltung notwendig macht.
Hier ist ein Schritt-für-Schritt-Überblick darüber, wie Autorisierung funktioniert:
- Authentifizierung initiieren: Der Nutzer meldet sich an, indem er einen Identifikator und eine Methode auswählt, z. B. E-Mail und Passwort.
- Autorisierungsanfrage: Nach der Anmeldung fordert der Nutzer Zugang zu einer Ressource an und gibt dabei Details wie seine Nutzer-ID und Rollen an.
- Validierung der Zugangskontrolle: Das System überprüft die Anfrage anhand vordefinierter Autorisierungsrichtlinien, wie rollenbasierte oder attributbasierte Regeln.
- Autorisierungsentscheidung: Das System entscheidet, ob der Zugang gewährt oder verweigert wird, basierend auf den Richtlinien und Berechtigungen.
Um den Ablauf einer OAuth 2.0-Autorisierungsanfrage im Detail zu verstehen, schaue dir die Autorisierungsanfrage an.
Was sind die Autorisierungstypen?
Rollenbasierte Zugangskontrolle und wie sie funktioniert
Role-Based Access Control (RBAC) verwendet Rollen, um den Zugang zu verwalten. Jeder Nutzer wird einer oder mehreren vordefinierten Rollen zugeordnet, und jede Rolle umfasst eine Reihe von Berechtigungen. Der Schlüssel zu RBAC besteht darin, die Beziehung zwischen Subjekten (oder Nutzern), Rollen und Berechtigungen zu verstehen.
Um zu verstehen, wie Role-Based Access Control (RBAC) funktioniert, musst du wissen über:
- Subjekte: Diese können Nutzer oder nicht-menschliche Einheiten sein, wie
Benutzer
oderMachine-to-Machine-Anwendung
. - Rollen: Stellen Arbeitsfunktionen oder Verantwortlichkeiten dar. z.B.,
admin
Mitglied
- Berechtigungen: Geben an, welche Aktionen auf spezifischen Ressourcen erlaubt sind, z.B.
lesen: Bestellung
.
Attributbasierte Zugangskontrolle und wie sie funktioniert
Attribute-Based Access Control (ABAC) wird häufig in der Autorisierung verwendet und unterstützt komplexere Szenarien durch Nutzung spezifischer Attribute einer Entität, über Rollen hinaus.
Zum Beispiel verwaltet ein Unternehmen eine globale Dokumentenfreigabeplattform, bei der Mitarbeiter kontrollierten Zugriff auf sensible Dateien benötigen, basierend auf ihrer Arbeitsrolle, ihrem Standort und der Klassifizierungsstufe des Dokuments.
Die Attribute können folgendermaßen gestaltet werden:
- Nutzerattribute: Rolle (z.B., „Manager,“ „Ingenieur“), Standort (z.B., „USA,“ „Europa“).
- Ressourcenattribute: Dokumenttyp (z.B., „Finanzbericht,“ „Design-Datei“), Klassifizierungsstufe (z.B., „Vertraulich“).
- Umgebungsattribute: Zugriffszeit (z.B., „Während der Arbeitszeiten“), Gerätetyp (z.B., „Firmenlaptop“).
Es gibt auch andere Zugangskontrollmodelle wie policy-based access control (PBAC). Jedes Modell hat seine Stärken und Schwächen, und die Wahl des Modells hängt von deinem Anwendungsfall und deinen Anforderungen ab.
Anwendungsfälle und Beispiele für AuthZ
B2C-Software
B2C-Software erfordert oft spezifische Rollen basierend auf den Geschäftsbedürfnissen. Zum Beispiel könnte eine Buchladenverwaltungs-App Rollen mit unterschiedlichen Verantwortlichkeiten umfassen, wie die Verwaltung von Ressourcen und Dienstleistungen.
B2B-Mandanten-App
B2B-Apps verwenden häufig eine Multi-Tenant-Architektur, wobei jeder Mandant eine Organisation darstellt. Innerhalb der Organisation werden Rollen wie Admin und Mitglied benötigt. Hier spielt die Autorisierung (AuthZ) eine Schlüsselrolle bei der Verwaltung der Nutzer auf Organisationsebene, oft unter Verwendung der rollenbasierten Zugangskontrolle (RBAC).
Machine-to-Machine-Autorisierung
Machine-to-Machine Kommunikation erfolgt direkt zwischen Diensten ohne menschliche Interaktion. Zum Beispiel, Anrufen von API-Diensten. Es beinhaltet oft Tokens (z.B. OAuth 2.0 Zugriffstoken), um sicheren, dynamischen und granularen Zugriff zu gewährleisten.
Was sind die besten Praktiken für AuthZ?
Hier sind einige beste Praktiken für die Autorisierung (authZ), um sichere und effektive Zugangskontrolle zu gewährleisten:
-
Prinzip des geringsten Privilegs
Dies stellt sicher, dass das Risiko unberechtigten Zugriffs oder von Schäden durch kompromittierte Konten minimiert wird. Nutzer und Systeme sollten nur auf die Ressourcen und Aktionen zugreifen, die sie für ihre Rolle benötigen.
-
Token-basierte Autorisierung verwenden
Token-basierte Zugangskontrolle bietet mehr Flexibilität und granulare Kontrolle und hält sich an offene Standards. Verwende sichere Tokens (z.B., OAuth 2.0, JWTs), um zeitlich begrenzten und auf Anwendungsbereiche fokussierten Zugang zu gewähren.
-
Regelmäßig prüfen und überwachen
Das regelmäßige Überprüfen von Zugriffprotokollen und Autorisierungsrichtlinien ist notwendig, um Anomalien oder veraltete Berechtigungen zu erkennen.
-
Trennung der Pflichten anwenden
Beginne mit der Implementierung feingranularer Berechtigungen, wie der Definition spezifischer Aktionen und Ressourcen (z.B. lesen, schreiben, löschen). Bei der Erstellung von Rollen, verwende klare Rollennamen und setze die Trennung der Pflichten durch, um das Risiko von Betrug oder Fehlern durch einen einzelnen Nutzer zu minimieren.
-
Multi-Tenancy unterstützen (falls zutreffend)
Für Multi-Tenant-Systeme ist die Trennung der Mandanten wichtig. Indem man es mit der rollenbasierten Zugangskontrolle kombiniert, kann man die Trennung von Datenressourcen erreichen und sicherstellen, dass die entsprechenden Rollen nur innerhalb ihres Mandanten auf Ressourcen zugreifen können. Dies verhindert unbeabsichtigten oder böswilligen Zugriff auf die Ressourcen anderer Mandanten.
-
Zugriff dynamisch widerrufen
Beim Entwerfen deines AuthZ-Systems, stelle sicher, dass Berechtigungen aktualisiert oder sofort widerrufen werden können, wenn sich Bedingungen ändern (z.B. Rollenaktualisierungen oder Kündigung des Arbeitsverhältnisses). Dies kann durch dynamische API-Prüfungen, Webhooks oder andere Methoden erreicht werden. Das Ziel ist es, unberechtigten Zugang in Echtzeit zu verhindern.
Was ist der Unterschied zwischen AuthZ(Autorisierung) vs. Auth(Authentifizierung)?
Der Unterschied zwischen Authentifizierung und Autorisierung liegt in ihrem Zweck und Ablauf im Identitäts- und Zugriffsmanagement.
AuthN (Authentifizierung) beantwortet die Frage: „Wer bist du und welche Identität besitzt du?“ Es ist der Prozess der Überprüfung der Identität eines Nutzers, Dienstes oder Geräts. Authentifizierung stellt sicher, dass die Entität, die versucht, auf ein System oder eine Ressource zuzugreifen, echt ist. Übliche Methoden umfassen Passwörter, Biometrie und Zwei-Faktor-Authentifizierung (2FA). Wenn du dich beispielsweise mit deiner E-Mail und deinem Passwort in ein Konto einloggst, bestätigt das System deine Identität durch Authentifizierung.
AuthZ (Autorisierung) beantwortet die Frage: „Was darfst du tun?“ Es ist der Prozess der Gewährung oder Verweigerung des Zugriffs auf Ressourcen basierend auf den Berechtigungen oder Rollen des Nutzers. Autorisierung erfolgt nach der Authentifizierung und bestimmt, welche Aktionen der authentifizierte Nutzer ausführen kann. Beispielsweise kann ein Admin-Nutzer nach dem Login Zugriff auf die Änderung von Einstellungen haben, während ein regulärer Nutzer sie nur ansehen kann.
Zusammenfassend bestätigt AuthN (Authentifizierung) die Identität, während AuthZ (Autorisierung) den Zugriff definiert. Authentifizierung erfolgt zuerst, gefolgt von der Autorisierung, um die sichere und angemessene Nutzung von Ressourcen sicherzustellen.
Baue AuthZ (Autorisierung) mit Logto
Logto Cloud bietet Schlüsselautorisierungsdienste basierend auf standardisierten Protokollen wie OIDC, OAuth 2.0 und SAML. Funktionen umfassen Role-Based Access Control, Organizations (Multi-Tenancy) und Custom Token Claims, um deinen Autorisierungsbedarf aus verschiedenen Perspektiven zu erfüllen.