open-how2 – Entdecke. Verstehe. Nutze.
Veröffentlicht am
How2-Tipps

Keycloak & OpenID Connect – Wie moderne Authentifizierung funktioniert

Autor
Keycloak & OpenID Connect – Wie moderne Authentifizierung funktioniert

Login ist nicht gleich Login. Während früher einfache Passwortprüfungen genügten, setzen moderne Anwendungen auf standardisierte, sichere und flexible Authentifizierungssysteme. Einer der wichtigsten Standards dabei: OpenID Connect (OIDC).

Gemeinsam mit Keycloak, der Open-Source-Identitätsplattform von Red Hat, wird OpenID Connect zum Fundament moderner Zugangskontrolle. In diesem Artikel werfen wir einen tiefen Blick in das Zusammenspiel von Tokens, Claims, Scopes und ID-Flows – und erklären, wie Keycloak daraus ein sicheres Login-Erlebnis macht.

Was ist OpenID Connect?

OpenID Connect (OIDC) ist ein Protokoll, das auf OAuth 2.0 aufbaut und Authentifizierung standardisiert. Während OAuth primär regelt, wer was darf, kümmert sich OIDC um die Frage: Wer ist der Benutzer überhaupt?

Einfach gesagt:

  • OAuth 2.0 = Zugriff auf Ressourcen (Autorisierung)
  • OpenID Connect = Identität des Benutzers (Authentifizierung)

OIDC ermöglicht also, dass Anwendungen sicher feststellen können, wer sich angemeldet hat, ohne Passwörter direkt zu verarbeiten.

Wie Keycloak OpenID Connect umsetzt

Keycloak fungiert als Identity Provider (IdP). Andere Systeme wie Web-Apps, APIs oder mobile Apps agieren als Clients, die bei Keycloak nach Authentifizierung „fragen“.

Der Ablauf ist standardisiert und läuft in mehreren Schritten:

  1. Der Benutzer öffnet eine Anwendung (Client)
  2. Diese leitet den Benutzer zur Keycloak-Loginseite weiter
  3. Der Benutzer meldet sich dort an
  4. Keycloak prüft Identität, Rollen und Policies
  5. Nach erfolgreicher Anmeldung sendet Keycloak Token (Access, Refresh, ID) an die Anwendung zurück

Die Anwendung vertraut dabei dem Token – sie muss den Benutzer selbst nicht mehr authentifizieren.

Die drei Token-Arten in OpenID Connect

1. Access Token

Wird für API-Zugriffe genutzt. Es enthält Berechtigungsinformationen und wird bei jeder Anfrage mitgesendet. Keycloak validiert es serverseitig und prüft, ob die Ressource zugänglich ist.

Beispiel (gekürzt):

{
  "typ": "Bearer",
  "scope": "openid profile email",
  "exp": 1732810230,
  "client_id": "nextcloud"
}

2. Refresh Token

Dient dazu, ein neues Access Token anzufordern, ohne sich neu einloggen zu müssen. Lebensdauer: meist mehrere Stunden oder Tage. Ideal für Sessions in mobilen Apps oder langen Browser-Sitzungen.

3. ID Token

Das wichtigste Token für Authentifizierung. Es enthält Informationen über die Identität des Benutzers – also sogenannte Claims (siehe unten).

Beispiel:

{
  "sub": "92a88b7f-7b94-41a2-9b21-ff9a1234567",
  "name": "Alex Beispiel",
  "email": "alex@example.com",
  "preferred_username": "alex"
}

Claims: Wer bin ich?

Ein Claim ist eine Information über den Benutzer – ähnlich wie ein digitales Ausweisdokument. Claims werden im ID Token mitgeschickt und können alles Mögliche beschreiben: Name, E-Mail, Rolle, Gruppenzugehörigkeit usw.

Beispiele typischer Claims:

  • sub → Eindeutige Benutzer-ID
  • email → E-Mail-Adresse
  • roles → Zugewiesene Rollen im Realm
  • preferred_username → Anzeigename
  • realm_access → Zugriff auf bestimmte Clients

Claims sind der Kern des „Ich bin es wirklich“ in modernen Login-Systemen.

Scopes: Welche Daten darf die Anwendung sehen?

Ein Scope definiert, welche Daten (Claims) ein Client abfragen darf. Beispiel:

  • openid – nötig für OIDC, liefert die ID
  • profile – gibt Zugriff auf Name, Geschlecht, Geburtsdatum
  • email – liefert E-Mail-Adresse
  • roles – liefert Keycloak-spezifische Rollen

Scopes sind damit wie Filter für den Datenschlüssel: Die Anwendung bekommt nur das, was sie wirklich braucht – ein zentrales Prinzip des Datenschutzes.

Authentifizierungs-Flows in OpenID Connect

OpenID Connect kennt mehrere Flows, also Abläufe, wie Token ausgetauscht werden. Keycloak unterstützt sie alle – hier die wichtigsten:

  1. Authorization Code Flow (empfohlen) → Sicherster Flow für Webanwendungen → Token werden serverseitig ausgetauscht → Kein Token im Browser sichtbar

  2. Implicit Flow (veraltet) → Früher für Single-Page-Apps gedacht → Heute kaum noch genutzt wegen Sicherheitsrisiken

  3. Hybrid Flow → Kombination aus Code- und Implicit Flow → Schnellere Authentifizierung, aber komplexer

  4. Client Credentials Flow → Für maschinelle Kommunikation (Server-zu-Server) → Kein Benutzer beteiligt, nur Service-Accounts

Sicherheit & Best Practices

  1. Immer HTTPS nutzen – Tokens sind sensibel!
  2. Lebensdauer von Tokens kurz halten – Refresh Tokens regelmäßig erneuern.
  3. Rollen & Scopes sauber trennen – So verhinderst du übermäßige Berechtigungen.
  4. Clients registrieren & signieren – Kein „wildes“ Hinzufügen von Anwendungen.
  5. JWT-Signatur prüfen – Authentizität der Tokens sicherstellen.

Keycloak + OpenID Connect ist die perfekte Kombination aus Offenheit und Sicherheit. Anstatt eigene Login-Mechanismen zu basteln, setzt du auf bewährte Standards, die in der Cloud, On-Premise oder Hybrid-Umgebung funktionieren.

Tokens, Claims und Scopes sind keine Magie – sie sind die moderne Sprache der digitalen Identität. Und Keycloak spricht sie fließend.