Was ist rollenbasierte Zugriffskontrolle (RBAC)?

Aktualisiert: September 2026

Rollenbasierte Zugriffskontrolle ist ein Autorisierungsmodell, bei dem Berechtigungen an Rollen hängen und Nutzer sie nur über ihre Rollen erhalten. Diese Indirektion ist der ganze Gedanke: Nichts wird jemals direkt an eine Person vergeben, also wird organisatorische Veränderung zu einer Datenänderung – eine Beförderung ist eine Rollenzuweisung, keine Ausgrabung in verstreuten Einzelrechten. 1992 von Ferraiolo und Kuhn als Alternative zu den älteren diskretionären und verbindlichen Modellen vorgeschlagen, wurde es zum Standard ANSI/INCITS 359 und zum Standardvokabular der Autorisierung in Unternehmenssoftware.

Das Wichtigste in Kürze

FrageAntwort
Die IndirektionNutzer → Rolle → Berechtigung – nie Nutzer → Berechtigung direkt
Rolle ≠ GruppeEine Gruppe bündelt Nutzer; eine Rolle bündelt Berechtigungen
Die ModellstufenCore · hierarchisch (Vererbung) · eingeschränkt (Aufgabentrennung)
Der FehlermodusRollenexplosion – Attribute als Rollen codiert, bis Rollen die Nutzer überzählen
Die KompositionRollen in ACL-Einträgen: RBAC für die Masse, ACLs für die Ausnahmen

Nutzer, Rollen, Berechtigungen – die Indirektion in Aktion

Berechtigungen              Rollen                   Nutzer
─────────────               ─────────────            ─────────────
posts:read        ─┐
posts:write        ├──▶     Editor          ◀──────  Ada, Grace
posts:publish     ─┘
users:manage      ─┐
billing:view       ├──▶     Admin           ◀──────  Linus
posts:*           ─┘
posts:read        ────▶     Viewer          ◀──────  alle anderen

Ada veröffentlicht, weil Editor posts:publish trägt – weisen Sie ihr
eine andere Rolle zu, und alle Rechte wandern mit. Eine Änderung, nicht N.

Rollen als lebende Daten, verdrahtet mit den Objektberechtigungen:

// JavaScript / Node.js — Back4app JS SDK
// Roles as data: create a role, add members, grant through it
const roleACL = new Parse.ACL();
roleACL.setPublicReadAccess(true);
const editors = new Parse.Role('Editors', roleACL);
editors.getUsers().add(adaUser);
await editors.save();

// Grant by role, not by user — membership changes in one place
const post = new Parse.Object('Post');
const acl = new Parse.ACL(currentUser);  // owner entry
acl.setRoleWriteAccess('Editors', true); // RBAC meets the object's ACL
post.setACL(acl);
await post.save();

Das NIST-Modell, korrekt dargestellt

Die meisten Erklärungen pressen den Standard in eine Aufzählung; die tatsächliche Struktur ist dreißig Sekunden wert. Core RBAC definiert Nutzer, Rollen, Berechtigungen – und Sessions, das vergessene Element: Ein Nutzer aktiviert pro Session nur eine Teilmenge seiner Rollen, und genau so kann ein Administrator standardmäßig mit Mitgliedsrechten arbeiten und bewusst eskalieren. Die drei Regeln der Originalarbeit halten das zusammen: nur über eine Rolle handeln, nur autorisierte Rollen halten, nur tun, was die aktive Rolle erlaubt. Hierarchisches RBAC ergänzt Vererbung – übergeordnete Rollen schließen untergeordnete ein (Manager ⊇ Mitarbeiter) und beseitigen Dopplungen. Eingeschränktes RBAC ergänzt die Aufgabentrennung: Statische Regeln verbieten unvereinbare Rollenzuweisungen von vornherein (niemals Zahlungserfasser und Zahlungsfreigeber zugleich); dynamische Regeln erlauben die Zuweisung, verbieten aber, beide in einer Session zu aktivieren. Und die schärfste Klarstellung des NIST, die regelmäßig verdreht wird: Eine Gruppe ist eine Sammlung von Nutzern; eine Rolle ist eine Sammlung von Berechtigungen – die Rolle wird dadurch definiert, was sie darf, nicht dadurch, wer in ihr ist.

RBAC-Struktur mit Sessions und AufgabentrennungNutzern werden Rollen zugewiesen, von denen sie pro Session eine Teilmenge aktivieren. Rollen tragen Berechtigungen und können von untergeordneten Rollen erben. Einschränkungen zur Aufgabentrennung regeln, welche Rollen gemeinsam zugewiesen oder aktiviert werden dürfen, und Berechtigungen gelten für Ressourcen.

zugewiesen

aktiviert Teilmenge
pro Session

erbt von

Trennungsregel:
nicht mit Approver

Berechtigungen der
aktiven Rollen

Nutzerin
Ada

Rollen
Editor · Auditor

Session
nur Editor

Untergeordnete Rolle
Viewer

Unvereinbare Rolle

posts:write
posts:publish

Ressourcen

Nutzern werden Rollen zugewiesen, von denen sie pro Session eine Teilmenge aktivieren. Rollen tragen Berechtigungen und können von untergeordneten Rollen erben. Einschränkungen zur Aufgabentrennung regeln, welche Rollen gemeinsam zugewiesen oder aktiviert werden dürfen, und Berechtigungen gelten für Ressourcen.

RBAC vs. ACL vs. ABAC

KriteriumRBACACLABAC
Berechtigungen hängen anRollenJedem ObjektAttributregeln
Ursprüngliche FrageWas darf diese Funktion?Wer darf dieses Objekt anfassen?Ist das im Kontext erlaubt?
VerwaltungEine Stelle pro RollePro ObjektPro Policy
Teilen pro ObjektNicht ausdrückbarDie ParadedisziplinAusdrückbar, aber umständlich
Prüfung “was darf Ada?”Ihre Rollen lesenJedes Objekt durchsuchenJede Regel auswerten
FehlermodusRollenexplosionWildwuchs an ListenUndurchsichtige Policies

Die Einsicht, die die Anbieterergebnisse der Suchmaschinen begraben: Diese Modelle ergänzen sich, sie konkurrieren nicht. Rollen regeln Zugriff, der der Funktion folgt; ACL-Einträge regeln Ausnahmen pro Objekt – und das Scharnier ist der Rollen-ACE, eine ACL-Zeile, die eine Rolle statt eines Nutzers benennt und so Kontrolle auf Objektebene mit Mitgliederverwaltung an einer Stelle verbindet. Attributbedingungen legen sich darüber, wo der Kontext (Zeit, Tenant, Zustand des Datensatzes) tatsächlich entscheidet. “Welches Modell?” ist meist die falsche Frage; “welche Schicht trifft welche Entscheidung?” ist der Entwurf.

Rollenexplosion – der Fehlermodus

Die charakteristische Krankheit des RBAC: Jede Ausnahme prägt eine neue Rolle, dann vervielfachen Projekte, Regionen und Tenants sie – Project-A-Manager-Region-West-ReadOnly – bis es mehr Rollen als Nutzer gibt und die Prüfantwort auf “wer darf was?” lautet: “weiß niemand”. Die Ursache ist immer dieselbe: Kontextattribute, die als Rollen codiert werden. Die Gegenmaßnahmen, der Reihe nach: Attribute aus Rollennamen heraushalten (Region und Tenant sind Bedingungen oder Scopes, keine Rollen); das Teilen pro Objekt über ACL-Einträge lösen, niemals über Rollen pro Objekt; Rollen strukturell pro Tenant abgrenzen statt über verbogene Namen; und prüfen – Rollen, die niemand hält, Berechtigungen, die keine Rolle nutzt, und Rechte, an die sich niemand erinnert, sind Drift, und Drift ist die Art, wie das Prinzip der geringsten Rechte leise stirbt. Eine brauchbare Faustregel: Wenn eine Rollenliste nicht mehr auf einen Bildschirm passt, übernimmt das Modell Arbeit, die einer anderen Schicht gehört.

Rollen entwerfen: Top-down, Bottom-up oder beides

Der Teil, den keine Ranking-Erklärung behandelt: woher Rollen kommen. Top-down leitet sie aus der Organisation und ihren Prozessen ab – das Geschäft befragen, die Funktionen benennen, minimale Berechtigungen zuweisen; genau, aber langsam. Bottom-up gewinnt sie aus bestehenden Rechten – wer hält bereits was, gruppiert, und die Rollenkandidaten fallen heraus; schnell, aber vergangene Fehler werden so zu Richtlinien geadelt. Die Praxis ist hybrid: Kandidaten gewinnen, gegen die Funktionen validieren, dann den 80/20-Test anwenden – eine Handvoll breiter Rollen für die Masse der Organisation, Ausnahmen über ACLs oder Bedingungen statt über maßgeschneiderte Rollen. Und eine Umsetzungsregel, die jede Umstrukturierung überlebt: Code sollte Berechtigungen prüfen, nicht Rollennamen – can('posts:publish'), nicht hasRole('Editor') –, damit das Neuschneiden einer Rolle eine Datenänderung bleibt und kein Refactoring, durchgesetzt serverseitig und standardmäßig verweigernd.

Typische Anwendungsfälle

  • Adminbereiche und Back-Offices – Support, Moderation, Finanzen, Superadmin: Funktionen lassen sich sauber auf Rollen abbilden.
  • Redaktions- und Publishing-Abläufe – Autor, Redakteur, Veröffentlicher, mit Trennung zwischen Schreiben und Freigeben.
  • Teamberechtigungen in B2B-SaaS – Owner/Admin/Member/Billing pro Workspace, abgegrenzt pro Tenant.
  • Regulierte Abläufe – Aufgabentrennung als durchsetzbare Rolleneinschränkung, mit der Rollenmitgliedschaft als Prüfnachweis.
  • Das Rollentor auf Datenschichten – Rollen als das “Wer” in Klassenberechtigungen und zeilenbasierten Richtlinien.

Sollten Sie RBAC verwenden? Eine Entscheidungsmatrix

SituationTendenz
Zugriff folgt der beruflichen FunktionRBAC – die Paradedisziplin
Nutzer teilen einzelne Datensätze spontanACLs – Rollen können das nicht ausdrücken
Der Kontext entscheidet (Zeit, Zustand, Tenant)Attributbedingungen über den Rollen
Eine Handvoll stabiler NutzertypenRBAC mit 3–7 breiten Rollen
Tiefe Organigramme, verschachtelte TeamsRollenhierarchie – oder ReBAC ab echter Größe
”Nur Admins und alle anderen”Ein einziges Rollentor – nicht übermodellieren

Grenzen und Trade-offs

  • Teilen pro Objekt liegt außerhalb des Modells. “Teile dieses Dokument mit Ana” hat keine RBAC-Antwort außer einer Rolle pro Dokument – diese Entscheidung gehört zu den ACLs.
  • Gleiche Rolle, gleiche Rechte. Zwei Redakteure sind ununterscheidbar; individuelle Nuancen brauchen eine weitere Schicht, keine fast identische Zweitrolle.
  • Rollenentwurf ist echte Vorarbeit. Wer sie überspringt, bekommt Rollen, die weder die Organisation noch das Risikomodell abbilden – und die dann für immer kopiert werden.
  • Statische Rollen übersehen dynamisches Risiko. Die Rollenmitgliedschaft sieht keine ungewöhnlichen Uhrzeiten, neuen Geräte oder sensiblen Datensatzzustände; das ist Attributgebiet.
  • Drift ist der Normalzustand. Ohne regelmäßige Rezertifizierung wächst der Rollenumfang nur; die Prüfbarkeit von RBAC ist eine Möglichkeit, keine Garantie.

Rollen mit Back4app

Back4app ist eine Open-Source-Plattform für Backend as a Service (BaaS), die eine verwaltete Datenbank, automatisch generierte REST- und GraphQL-APIs, Authentifizierung, Dateispeicher und Serverless-Funktionen mit Cloud Code kombiniert. Rollen sind hier Daten, nicht Code: Jede ist ein Objekt der Klasse _Role mit einer users-Relation für Mitglieder und einer roles-Relation für die Verschachtelung – und Verschachtelung ist Hierarchie zum Nulltarif, denn Mitglieder einer untergeordneten Rolle erben, was deren übergeordneten Rollen gewährt wurde. Die Rechtevergabe selbst geschieht genau dort, wohin der Abschnitt zur Komposition zeigt: Rollennamen erscheinen in Klassenberechtigungen für die groben Linien und in ACL-Einträgen pro Objekt für die Ausnahmen – die Code-Tabs zeigen beide Hälften –, und Back4app setzt das Ergebnis bei jeder REST-, GraphQL- und Live-Query-Anfrage durch. Weil Rollen abfragbare Objekte sind, werden Mitgliederverwaltung, Prüfungen und Admin-Oberflächen zu gewöhnlicher Datenbankarbeit: Vermeidung von Rollenexplosion als Gewohnheit der Datenmodellierung, nicht als Governance-Projekt.

Häufige Fragen

Was ist RBAC, einfach erklärt?

Zugriff wird nach Funktion vergeben, nicht pro Person: Berechtigungen hängen an Rollen – Editor, Admin, Support – und Nutzer erben alles, was ihre zugewiesenen Rollen tragen. Einstellung, Beförderung und Austritt werden zu Rollenänderungen an einer Stelle statt zu überall verstreuten Berechtigungsänderungen.

Was ist der Unterschied zwischen RBAC und ABAC?

RBAC entscheidet anhand vordefinierter Rollen; attributbasierte Zugriffskontrolle (ABAC) wertet Attribute von Nutzer, Ressource und Kontext aus – Abteilung, Vertraulichkeit, Uhrzeit – und zwar zum Zeitpunkt der Anfrage. RBAC ist leichter zu durchdenken und zu prüfen; ABAC ist feingranularer und schwerer zu debuggen. Reife Systeme nehmen RBAC als Basis und ergänzen Attributbedingungen dort, wo der Kontext wirklich zählt.

Was ist der Unterschied zwischen RBAC und einer ACL?

Die Richtung der Zuordnung: Eine ACL hängt Subjekt-Berechtigungs-Einträge an jedes Objekt; RBAC hängt Berechtigungen systemweit an Rollen. Beide ergänzen sich, statt zu konkurrieren – ein ACL-Eintrag kann eine Rolle benennen, und genau so koexistieren Kontrolle auf Objektebene und Mitgliederverwaltung an einer Stelle.

Welche RBAC-Modelle gibt es?

Der Standard definiert Core RBAC (Nutzer, Rollen, Berechtigungen, Sessions), hierarchisches RBAC (übergeordnete Rollen erben die Berechtigungen untergeordneter Rollen) und eingeschränktes RBAC (Regeln zur Aufgabentrennung – statische Einschränkungen bei der Zuweisung, dynamische Einschränkungen dafür, was eine Session gemeinsam aktivieren darf).

Was sind die drei Regeln von RBAC?

Aus der ursprünglichen Formulierung von 1992: Ein Subjekt kann nur über eine ausgewählte Rolle handeln (Rollenzuweisung); das Subjekt muss für diese Rolle autorisiert sein (Rollenautorisierung); und eine Aktion ist nur erlaubt, wenn die aktive Rolle die passende Berechtigung hält (Berechtigungsautorisierung). Zusammengefasst: kein Zugriff außer über Rollen.

Was ist Rollenexplosion?

Unkontrolliertes Rollenwachstum, wenn jede Ausnahme, jedes Projekt, jede Region und jeder Tenant eine neue Rolle hervorbringt – Project-A-Manager-Region-West – bis es mehr Rollen als Nutzer gibt und niemand das System mehr prüfen kann. Die Ursache ist stets dieselbe: Kontextattribute werden als Rollen codiert, statt sie über Bedingungen oder Einträge pro Objekt zu behandeln.

Ist RBAC dasselbe wie das Prinzip der geringsten Rechte?

Nein – das Prinzip der geringsten Rechte ist der Grundsatz, RBAC ein Mechanismus, ihn zu verfolgen, und nur Rollendisziplin verbindet beides. Eine zu breit geschnittene Rolle verletzt den Grundsatz von innerhalb des RBAC; Rollen minimal zu schneiden und regelmäßig zu überprüfen ist das, was den Grundsatz tatsächlich einlöst.

Was ist Aufgabentrennung in RBAC?

Einschränkungen, die unvereinbare Befugnisse auseinanderhalten: Statische Trennung verbietet es einem Nutzer, jemals Zahlungserfasser und Zahlungsfreigeber zugleich zu sein; dynamische Trennung erlaubt beides, aber niemals in derselben Session aktiviert. Es ist Betrugsprävention, ausgedrückt als Rollenregel.

Verwandte Begriffe

Vergleichen mit

Weiterführende Quellen

Bereit, Ihr Backend zu bauen?

Starten Sie Ihr Projekt auf Back4app in wenigen Minuten — Datenbank, Authentifizierung, APIs und Cloud Code inklusive. Keine Kreditkarte erforderlich.

Geschrieben und geprüft von Back4app Engineering, Back4app Engineering · Veröffentlicht am 2026-09-24