bg_image
header

OpenID Connect

OpenID Connect (OIDC) ist ein Authentifizierungsprotokoll, das auf OAuth 2.0 basiert. Es ermöglicht es Clients (z. B. Web-Apps, Mobile-Apps), die Identität eines Benutzers sicher zu verifizieren, der sich bei einem externen Identitätsanbieter (IdP) anmeldet — zum Beispiel Google, Microsoft, Apple, etc.


🔐 Kurz gesagt:

OAuth 2.0 → regelt die Autorisierung (Zugriff auf Ressourcen)
OpenID Connect → regelt die Authentifizierung (Wer ist der Benutzer?)


🧱 Wie funktioniert OpenID Connect?

  1. Benutzer klickt auf "Login mit Google"

  2. Deine App leitet den Benutzer zum Google-Login weiter

  3. Nach erfolgreichem Login leitet Google den Benutzer mit einem ID Token zurück

  4. Deine App validiert dieses JWT-Token

  5. Du weißt nun, wer der Benutzer ist – verifiziert von Google


🔑 Was enthält ein ID Token?

Das ID Token ist ein JSON Web Token (JWT) mit Informationen über den Benutzer, z. B.:

{
  "iss": "https://accounts.google.com",
  "sub": "1234567890",
  "name": "John Doe",
  "email": "john@example.com",
  "iat": 1650000000,
  "exp": 1650003600
}
  • iss = Issuer (z. B. Google)

  • sub = Benutzer-ID

  • email, name = Benutzerinformationen

  • iat, exp = Zeitstempel


🧩 Typische Anwendungsfälle

  • "Login mit Google/Microsoft/Apple"

  • Single Sign-On (SSO) in Unternehmen

  • Zentrale Identitätsverwaltung (Keycloak, Auth0, Azure AD)

  • OAuth-basierte APIs mit Identitätsprüfung


🛠️ Komponenten bei OpenID Connect

Komponente Beschreibung
Relying Party Deine App, die den Login anfordert
Identity Provider Der externe Login-Anbieter (z. B. Google)
ID Token Das JWT mit den Benutzerinformationen
UserInfo Endpoint (Optional) API für weitere Benutzerdaten

JavaScript Object Notation - JSON

JSON (JavaScript Object Notation) ist ein leichtgewichtiges Datenformat zur Darstellung strukturierter Daten im Textformat. Es wird häufig für den Datenaustausch zwischen einem Server und einer Webanwendung verwendet. JSON ist leicht lesbar und schreibbar für Menschen und einfach zu analysieren und zu generieren für Maschinen.

Hier sind einige grundlegende Merkmale von JSON:

  1. Syntax:

    • JSON-Daten sind in Schlüssel-Wert-Paaren organisiert.
    • Ein JSON-Objekt ist in geschweifte Klammern {} eingeschlossen.
    • Ein JSON-Array ist in eckige Klammern [] eingeschlossen.
  2. Datentypen:

    • Zeichenketten (Strings): "Hallo"
    • Zahlen: 123 oder 12.34
    • Objekte: {"Schlüssel": "Wert"}
    • Arrays: ["Element1", "Element2"]
    • Booleans: true oder false
    • Null: null
  3. Beispiel:

{
    "Name": "Max Mustermann",
    "Alter": 25,
    "Adresse": {
        "Straße": "Musterstraße 1",
        "Stadt": "Musterstadt"
    },
    "Hobbys": ["Lesen", "Schreiben", "Reisen"]
}

In diesem Beispiel enthält das JSON-Objekt Informationen über eine Person mit ihrem Namen, Alter, Adresse und Hobbys.

  1. Anwendung:
    • Web-APIs: JSON wird oft in Web-APIs verwendet, um Daten zwischen Client und Server zu übertragen.
    • Konfigurationsdateien: Viele Anwendungen nutzen JSON-Dateien zur Konfiguration.
    • Datenbanken: Einige NoSQL-Datenbanken wie MongoDB speichern Daten im JSON-ähnlichen BSON-Format.

JSON hat sich aufgrund seiner Einfachheit und Flexibilität als Standardformat für den Datenaustausch im Web etabliert.

 

 


JSON Web Token - JWT

Ein JSON Web Token (JWT) ist ein kompaktes, sicheres und selbstbeschreibendes Format für den Austausch von Informationen zwischen Parteien. Es besteht aus einer JSON-Struktur, die aus drei Teilen besteht: dem Header, dem Payload und der Signatur.

  1. Header: Der Header enthält Metadaten über den Typ des Tokens und den verwendeten Signaturalgorithmus.

  2. Payload: Der Payload enthält die eigentlichen Ansprüche oder Informationen, die im Token enthalten sind. Diese Ansprüche können Benutzerdaten, Rollen, Berechtigungen usw. sein.

  3. Signatur: Die Signatur wird verwendet, um sicherzustellen, dass der Token nicht manipuliert wurde. Sie wird erstellt, indem der Header, der Payload und ein geheimer Schlüssel (der nur dem Aussteller des Tokens bekannt ist) signiert werden.

JWTs werden häufig für Authentifizierung und Autorisierung in Webanwendungen verwendet. Sie können beispielsweise verwendet werden, um Benutzer nach der Anmeldung zu authentifizieren und ihnen Zugriff auf bestimmte Ressourcen zu gewähren, indem sie in den HTTP-Headern oder in HTTP-Cookies gespeichert und zwischen dem Client und dem Server ausgetauscht werden.