Autorização
Permissões
Segurança
RBAC
ABAC
Controle de Acesso

Autorisierung und Berechtigungen in Anwendungen: Sichere Zugriffskontrolle

Autorisierung und Berechtigungen in Anwendungen: Sichere Zugriffskontrolle

Die Autorisierung definiert, was ein authentifizierter Benutzer tun kann. Während die Authentifizierung die Identität bestätigt, steuert die Autorisierung den Zugriff auf Ressourcen und Aktionen. In diesem Leitfaden werden Vorlagen, Implementierungen und Best Practices für den Aufbau robuster Berechtigungssysteme vorgestellt.

Authentifizierung vs. Autorisierung

Authentifizierung

Antwort: „Wer bist du?“ Verifiziert die Identität anhand von Anmeldeinformationen.

Autorisierung

Antwort: „Was können Sie tun?“ Legt Berechtigungen fest, nachdem die Identität bestätigt wurde.

Praxisbeispiel

Benutzer meldet sich an (Authentifizierung). Das System prüft, ob Sie auf das Admin-Panel zugreifen können (Autorisierung).

Warum Autorisierung wichtig ist

Ohne ordnungsgemäße Zugriffskontrolle kann jeder authentifizierte Benutzer auf jede Ressource zugreifen. Sensible Daten werden offengelegt, destruktive Maßnahmen werden möglich. Die Autorisierung schützt kritische Daten und Vorgänge.

Zugangskontrollmodelle

ACL (Zugriffskontrollliste)

Liste, die definiert, wer auf jede Ressource zugreifen kann. Einfach, lässt sich aber nicht gut auf komplexe Systeme skalieren.

RBAC (Rollenbasierte Zugriffskontrolle)

Den Rollen zugewiesene Berechtigungen, den Benutzern zugewiesene Rollen. Hierarchische Struktur. Am häufigsten verwendetes Modell.

ABAC (Attributbasierte Zugriffskontrolle)

Entscheidungen basierend auf Attributen: Benutzer, Ressource, Umgebung. Flexibel, aber komplex.

ReBAC (Beziehungsbasierte Zugriffskontrolle)

Basierend auf Beziehungen zwischen Entitäten. „Sie können es bearbeiten, wenn Sie es besitzen.“ Wird von Sansibar (Google) verwendet.

RBAC im Detail

Komponenten

  • Benutzer: Personen oder Systeme, die darauf zugreifen.
  • Rollen: Berechtigungssätze (Administrator, Editor, Betrachter).
  • Berechtigungen: Zulässige Aktionen (Erstellen, Lesen, Aktualisieren, Löschen).
  • Funktionen: Geschützte Objekte (Beiträge, Benutzer, Einstellungen).

Rollenhierarchie

Rollen können von anderen erben. Der Administrator erbt vom Editor, der vom Viewer erbt. Reduziert Duplikate.

Strukturbeispiel

ScrollenBerechtigungenGeltungsbereich
Adminerstellen, lesen, aktualisieren, löschenAlle Ressourcen
Herausgebererstellen, lesen, aktualisierenInhalt
BetrachterlesenÖffentlicher Inhalt

RBAC-Implementierung

Datenbank

Tabellen für Benutzer, Rollen, Berechtigungen und Beziehungen (user_roles, role_permissions).

Verifizierungs-Middleware

Vor der Aktion prüft die Middleware, ob der Benutzer über die erforderliche Berechtigung verfügt.

Dekorateure/Wächter

In modernen Frameworks Annotationen, die Routen oder Methoden schützen.

Berechtigungs-Caching

Vermeiden Sie es, bei jeder Anfrage die Bank zu konsultieren. Benutzerberechtigungen in Token oder Redis zwischenspeichern.

ABAC: Erweiterte Flexibilität

Wann zu verwenden

Wenn RBAC nicht ausdrucksstark genug ist. Regeln hängen vom dynamischen Kontext ab.

Richtlinienbeispiele

  • Sie können es bearbeiten, wenn Sie der Autor des Dokuments sind.
  • Sie können darauf zugreifen, wenn Sie in derselben Abteilung sind.
  • Sie können genehmigen, wenn der Betrag unter Ihrem Limit liegt.

###XACML

Standard zum Ausdrücken von ABAC-Richtlinien. XML-basiert, wird in Unternehmensumgebungen verwendet.

Berechtigungen auf Ressourcenebene

Sicherheit auf Zeilenebene

Kontrolle durch Registrierung. Der Benutzer sieht nur seine eigenen Daten. PostgreSQL wird nativ unterstützt.

Sicherheit auf Spaltenebene

Feldkontrolle. Bestimmte Felder sind nur für bestimmte Rollen sichtbar.

Mandantenfähigkeit

Isolation zwischen Mietern. Jede Organisation greift nur auf ihre Daten zu.

Betriebssystemberechtigungen

iOS

Der Zugriff auf Kamera, Standort und Fotos erfordert die ausdrückliche Genehmigung des Benutzers. Info.plist definiert Beschreibungen.

###Android

Im Manifest deklarierte Berechtigungen. Gefährliche Berechtigungen erfordern eine Laufzeiteinwilligung.

Gute Praktiken

  • Bestellen Sie zum Zeitpunkt der Nutzung, nicht im Voraus.
  • Erklären Sie, warum Sie es brauchen.
  • Bei Ablehnung ordnungsgemäß ausführen.

Token und Ansprüche

JWT-Ansprüche

Token kann Berechtigungsansprüche enthalten. Der Server validiert ohne Rücksprache mit der Bank.

Bereiche in OAuth

Sie definieren, auf welche Ressourcen der Token zugreifen kann. read:users, write:posts.

Pflege

Große Token wirken sich auf die Leistung aus. Balance zwischen Inline-Ansprüchen und Beratung.

Autorisierung in APIs

Überprüfung durch Endpunkt

Jeder Endpunkt prüft vor der Ausführung eine bestimmte Berechtigung.

Ressourcenserver

Der API-Server validiert Token und autorisiert basierend auf Bereichen und Ansprüchen.

Policy Decision Point (PDP)

Zentraler Dienst, der über Berechtigungen entscheidet. Ein Beispiel ist Open Policy Agent (OPA).

Implementierungsmuster

Standardmäßig ablehnen

Den Zugriff verweigern, es sei denn, dies ist ausdrücklich erlaubt. Ausfallsicher.

Geringstes Privileg

Mindestzuschuss erforderlich. Der Benutzer kann nur das, was er braucht.

Aufgabenteilung

Kritische Aufgaben erfordern mehrere Personen. Niemand macht alles alleine.

Überwachung und Protokollierung

Entscheidungen aufzeichnen

Protokoll darüber, wer versucht hat, auf was zuzugreifen und ob dies erlaubt oder verweigert wurde.

Anomalieerkennung

Verdächtige Muster: viele Ablehnungen, Zugriff außerhalb der Geschäftszeiten, Rechteausweitung.

Compliance

Vorschriften erfordern einen Prüfpfad. DSGVO, SOX, HIPAA.

Häufige Fehler

Verifizierung nur im Frontend

Das Backend sollte immer überprüfen. Frontend ist manipulierbar.

Rollen fest codiert

Es macht die Evolution schwierig. Nutzen Sie flexible Konfigurationen.

Übermäßige Berechtigungen

Geben Sie der Einfachheit halber mehr Zugriff als nötig. Prinzip der geringsten Privilegien.

Mangel an Tests

Schlecht getestete Berechtigungen schaffen Lücken. Testen Sie Zugriffsszenarien.

Tools und Bibliotheken

Kasbin

Autorisierungsbibliothek mit Unterstützung für mehrere Modelle (RBAC, ABAC, ACL).

Open Policy Agent (OPA)

Richtlinien-Engine. Berechtigungsentscheidungen als Code.

Auth0 FGA

Feingranulare Autorisierung. Modell ähnlich dem Sansibar von Google.

Ory Keto

Von Sansibar inspirierte Open-Source-Implementierung.

Mandantenfähigkeit und Autorisierung

Isolation

Mieter greifen nicht gegenseitig auf die Daten zu. Prüfung aller Abfragen.

Rollen nach Mandant

Benutzer können in verschiedenen Organisationen unterschiedliche Rollen haben.

Super Admin

Mandantenübergreifender Zugriff für den Plattformbetrieb. Mit äußerster Vorsicht verwenden.

Fazit

Eine gut implementierte Autorisierung schützt Daten und stellt sicher, dass Benutzer nur das tun, was sie tun sollen. Wählen Sie ein geeignetes Modell (für die meisten RBAC), implementieren Sie es standardmäßig mit „Deny“, testen Sie es gründlich und prüfen Sie den Zugriff. Sicherheit ist ein fortlaufender Prozess und keine einmalige Konfiguration.

##FAQs

1) Ist RBAC für die meisten Fälle ausreichend? Ja. RBAC bedient die meisten Anwendungen gut. ABAC ist für komplexere Szenarien gedacht.

2) Wo werden Berechtigungen gespeichert? Datenbank zur Quelle der Wahrheit. Cache (JWT-Ansprüche, Redis) für Leistung.

3) Wie gehe ich mit verweigerter Erlaubnis um? Geben Sie 403 Forbidden mit allgemeiner Nachricht zurück. Geben Sie keine Richtliniendetails preis.

4) Benötige ich einen separaten Autorisierungsdienst? Bei großen Systemen kann es sich lohnen. Für kleinere Apps reicht die integrierte Bibliothek.

5) Wie teste ich die Autorisierung? Automatisierte Tests, die den erlaubten und verweigerten Zugriff nach Rolle/Berechtigung prüfen.

Lesen Sie auch