RBAC (Role-Based Access Control)
RBAC (Role-Based Access Control) ist ein Berechtigungsmodell, bei dem Zugriffsrechte auf IT-Ressourcen nicht einzelnen Benutzern, sondern definierten Rollen zugewiesen werden. Benutzer erhalten Berechtigungen durch Zuweisung zu einer oder mehreren Rollen.
Ausführliche Erklärung
Role-Based Access Control ordnet Berechtigungen systematisch nach organisatorischen Funktionen statt nach individuellen Personen. Statt jedem Mitarbeiter einzeln festzulegen, welche Dateien, Systeme oder Anwendungen er nutzen darf, definiert man Rollen wie "Buchhaltung", "Vertrieb" oder "IT-Administrator". Jeder Rolle werden die für diese Funktion notwendigen Berechtigungen zugewiesen. Mitarbeiter erhalten dann Zugriff, indem sie einer oder mehreren Rollen zugeordnet werden. Dieses Prinzip bildet reale Organisationsstrukturen im IT-System ab und vereinfacht die Verwaltung erheblich.
Für kleine und mittlere Unternehmen bietet RBAC konkrete Vorteile: Die Einarbeitung neuer Mitarbeiter wird effizienter, da deren Berechtigungen durch Zuweisung zur passenden Rolle automatisch festgelegt sind. Bei Positionswechseln oder Austritten lassen sich Zugriffsrechte zentral anpassen, ohne jedes System einzeln zu konfigurieren. Das reduziert Fehlerquellen und unterstützt die Einhaltung von Datenschutz- und Compliance-Anforderungen. RBAC folgt dem Prinzip der minimalen Rechtevergabe: Jeder Benutzer erhält nur die Berechtigungen, die für seine Aufgaben tatsächlich erforderlich sind.
Das Konzept wurde bereits in den 1990er Jahren entwickelt und vom US-amerikanischen National Institute of Standards and Technology (NIST) formalisiert. Der NIST-Standard wurde 2004 als ANSI/INCITS 359-2004 zum amerikanischen Industriestandard und 2012 aktualisiert. RBAC unterscheidet sich von älteren Modellen wie der discretionary access control (DAC), bei der Benutzer selbst über Zugriffsrechte entscheiden können. In regulierten Umgebungen oder Unternehmen mit erhöhten Sicherheitsanforderungen ist zentrale Kontrolle über Berechtigungen meist der bessere Ansatz.
Bei komplexeren Anforderungen können erweiterte Modelle wie Hierarchical RBAC (mit Rollenvererbung) oder hybride Ansätze mit attributbasierter Zugriffskontrolle (ABAC) sinnvoll sein. Für KMU genügt jedoch meist ein einfaches RBAC-Modell mit klar definierten Rollen und regelmäßiger Überprüfung der Zuordnungen.
Praxisbeispiel
Eine Steuerberatungskanzlei mit 22 Mitarbeitern definiert fünf Rollen: "Kanzleileitung" (Zugriff auf alle Mandantendaten und Finanzsysteme), "Steuerberater" (Lese- und Schreibzugriff auf zugeordnete Mandate), "Steuerfachangestellte" (eingeschränkter Zugriff auf Buchhaltungssoftware), "Sekretariat" (Zugriff auf Terminverwaltung und Korrespondenz) sowie "Praktikant" (nur Lesezugriff auf Schulungsunterlagen). Bei Neueinstellungen wird die Person der passenden Rolle zugeordnet, womit alle erforderlichen Berechtigungen automatisch aktiviert werden.
Code-Beispiel
"""
Python-Beispiel: Einfaches RBAC-Modell
"""
# Rollendefinitionen mit Berechtigungen
roles = {
'admin': ['read', 'write', 'delete', 'manage_users'],
'editor': ['read', 'write'],
'viewer': ['read']
}
# Benutzer-Rollen-Zuordnung
user_roles = {
'[email protected]': ['admin'],
'[email protected]': ['editor'],
'[email protected]': ['viewer']
}
def check_permission(user, action):
"""Prüft, ob Benutzer die Berechtigung hat"""
user_perms = set()
for role in user_roles.get(user, []):
user_perms.update(roles.get(role, []))
return action in user_perms