- Veröffentlicht am
- • How2-Tipps
Rollen, Rechte & Policies – Zugriffskontrolle in Keycloak richtig gestalten
- Autor
-
-
- Benutzer
- tmueller
- Beiträge dieses Autors
- Beiträge dieses Autors
-
In modernen IT-Umgebungen ist Zugriffskontrolle mehr als nur ein Passwortschutz. Sie bestimmt, wer was darf – und genau hier spielt Keycloak seine Stärke aus. Die Open-Source-Software bietet ein mächtiges Rollen- und Berechtigungssystem, das sich bis ins Detail konfigurieren lässt.
In diesem Artikel zeigen wir, wie du Rollen, Rechte und Policies in Keycloak sinnvoll strukturierst, um Sicherheit, Übersicht und Flexibilität in Einklang zu bringen.
Grundprinzip: Rollenbasierte Zugriffskontrolle (RBAC)
Keycloak arbeitet nach dem Prinzip des Role-Based Access Control (RBAC). Das bedeutet: Benutzer bekommen keine direkten Rechte, sondern Rollen, die wiederum bestimmte Berechtigungen enthalten.
Beispiel:
- Rolle
editor→ darf Inhalte erstellen und bearbeiten - Rolle
admin→ darf zusätzlich Benutzer verwalten - Rolle
viewer→ darf nur lesen
Das bringt Struktur und verhindert, dass Rechte auf unübersichtliche Weise verteilt werden.
Arten von Rollen in Keycloak
Keycloak unterscheidet zwei zentrale Rollentypen:
1. Realm Roles
- Gültig für den gesamten Realm (also alle Clients und Benutzer innerhalb dieser Sicherheitsdomäne).
Ideal für globale Berechtigungen, z. B.:
realm-adminsupportsupervisor
Beispiel: Ein Benutzer mit der Realm-Rolle support kann in mehreren Clients bestimmte Supportfunktionen ausführen.
2. Client Roles
- Gültig nur innerhalb eines bestimmten Clients (z. B. einer Anwendung).
Nützlich, wenn einzelne Apps eigene Rollen benötigen, z. B.:
editorim Client „Intranet“analystim Client „CRM“
Diese Trennung ermöglicht feingranulare Berechtigungen – ideal für Multi-App-Umgebungen.
Rollen zuweisen und vererben
Rollen lassen sich in Keycloak manuell oder automatisch zuweisen:
- Direkt über den Benutzer
- Über Gruppen (z. B. „Marketing“, „Entwicklung“)
- Über Policies (siehe unten)
Außerdem unterstützt Keycloak Rollenvererbung:
Eine Rolle kann andere Rollen enthalten.
So kann z. B. admin die Rollen editor und viewer automatisch mit einschließen – ein praktischer Weg, um Hierarchien abzubilden.
Policies: Sicherheitsregeln mit Logik
Rollen sind das Was, Policies sind das Wann und Wie. Mit Policies lassen sich in Keycloak dynamische Zugriffskontrollen umsetzen – also Bedingungen, wann ein Zugriff erlaubt oder verweigert wird.
Typische Policy-Typen:
- User-based Policy – bestimmte Benutzer oder Gruppen erhalten Zugriff.
- Role-based Policy – Zugriff nur mit bestimmter Rolle.
- Time-based Policy – Zugriff nur zu bestimmten Zeiten (z. B. Mo–Fr, 8–18 Uhr).
- Client Policy – Zugriff abhängig von der anfragenden Anwendung.
- JavaScript Policy – individuelle Logik durch Skripte.
Beispiel: Ein Benutzer darf nur auf ein internes System zugreifen,
- wenn er die Rolle
employeehat - und sich innerhalb des Firmennetzwerks befindet.
Das alles lässt sich über eine Policy und die passende Permission kombinieren.
Permissions: Das Bindeglied zwischen Rollen und Policies
In Keycloak steuern Permissions, welche Ressourcen geschützt werden und welche Regeln gelten. Du kannst festlegen:
- Welche Ressource (z. B. API-Endpunkt, Datei oder Service) geschützt wird
- Welche Policy (Bedingung) gilt
- Welche Aktionen erlaubt sind
So entsteht ein flexibles Sicherheitsmodell – weit über klassische Rollenvergabe hinaus.
Praxisbeispiel: Zugriff auf ein Intranet-Dashboard
Ein klassisches Szenario sieht so aus:
- Ressource:
intranet-dashboard - Policies:
role_policy_editor→ erlaubt Zugriff für Redakteuretime_policy_daytime→ erlaubt Zugriff nur zwischen 8:00 und 18:00- Permission:
dashboard_access_permission→ kombiniert beide Policies
- Permission:
Damit hat ein Redakteur nur zu Bürozeiten Zugriff – perfekt für Sicherheit und Kontrolle.
Best Practices für sauberes Berechtigungsmanagement
- Rollen hierarchisch strukturieren
→ z. B.
viewer<editor<admin - Klare Trennung zwischen globalen und client-spezifischen Rollen → verhindert Verwirrung und Fehlkonfigurationen
- Gruppen statt Einzelzuweisungen → vereinfacht Administration erheblich
- Regelmäßig aufräumen → ungenutzte Rollen, Policies und Clients entfernen
- Policies dokumentieren → Transparenz und Nachvollziehbarkeit für Audits
Mit Rollen, Rechten und Policies bietet Keycloak eine der mächtigsten Zugriffskontrollen im Open-Source-Bereich. Die Kombination aus statischen Rollen und dynamischen Policies ermöglicht eine fein abgestufte, regelbasierte Sicherheit – ideal für Behörden, Unternehmen und Cloud-Umgebungen.
Kurz gesagt: Keycloak ist nicht nur ein Login-System, sondern ein vollständiges Sicherheitsframework – flexibel, nachvollziehbar und souverän.