OpenID Connect (OIDC) ist eine Erweiterung des OAuth 2.0-Protokolls und dient der sicheren und effizienten Authentifizierung von Benutzern und technischen Services. OIDC steht für OpenID Connect und ist eine Erweiterung des OpenID-Protokolls. Es wurde entwickelt, um die Limitationen des ursprünglichen OpenID-Standards zu überwinden und bietet erweiterte Sicherheitsmechanismen und die Übertragung von Benutzerinformationen.

Autorisierung und Authentifizierung von digitalen Identitäten

OpenID Connect baut auf dem OAuth 2.0-Protokoll auf, das für die Autorisierung entwickelt wurde, und erweitert es, um auch die Authentifizierung zu ermöglichen.

Die Begriffe „Authentifizierung“ und „Autorisierung“ werden oft miteinander verwechselt oder synonym verwendet, obwohl sie unterschiedliche Konzepte in der Informationssicherheit darstellen. Deshalb an dieser Stelle eine leicht verständliche Erläuterung der beiden IT-Security-Konzepte:

Authentifizierung

Authentifizierung ist der Prozess der Überprüfung der Identität einer Person, eines Systems oder einer Entität. Einfach ausgedrückt, stellt Authentifizierung sicher, dass Du tatsächlich derjenige bist, der Du behauptest zu sein. Dies erfolgt in der Regel durch die Eingabe eines Benutzernamens und eines Passworts, aber es kann auch durch andere Mechanismen wie biometrische Daten, Smartcards oder Zwei-Faktor-Authentifizierung (2FA) erfolgen.

Im Kontext von OpenID und OpenID Connect ist die Authentifizierung der Schritt, bei dem der Benutzer seine Identität gegenüber einem Identity Provider (IdP) bestätigt.

Ein erfolgreicher Authentifizierungsprozess führt in der Regel zur Ausstellung eines Tokens, das diese bestätigte Identität repräsentiert.

Beispiel für ein gültiges Token im OIDC Authentifizierungsprozess

Hier siehst Du ein JSON-Web Token als anschauliches Beispiel für ein Token mit einer als sicher geltenden Cipher Suite wie ES256 (Elliptic Curve Digital Signature Algorithm) für den Algorithmus:

JWT Header:

{
„alg“: „ES256“,
„kid“: „e9bc097a-ce51-4036-9562-d2ade882db0d“
}

JWT Payload:

{
„iss“: „https://identity-provider.com“,
„sub“: „1234567890abcdef“,
„aud“: „your-client-id“,
„exp“: 1621843200,
„iat“: 1621842600,
„nonce“: „random-nonce-string“,
„auth_time“: 1621842600
}

Dieses Beispiel verwendet den ES256-Algorithmus, der eine Elliptic Curve-Kryptografie (ECC) verwendet und noch als sicher gilt. Der kid (Key ID) wäre ein Identifier für den öffentlichen Schlüssel, der verwendet wird, um das Token zu verifizieren.

Nachdem Header und Payload generiert wurden, würden sie kodiert und mit dem privaten Schlüssel des Identity Providers signiert, um das vollständige JWT zu erzeugen. Es wäre eine Kombination dieser kodierten und signierten Werte, getrennt durch Punkte (.).

Autorisierung

Nach der Authentifizierung kommt die Autorisierung. Sie bestimmt, welche Ressourcen oder Aktionen der authentifizierten Benutzer oder das authentifizierte System zugreifen bzw. durchführen darf. Dabei kann es sich um Dateien, Datenbanken, APIs und andere geschützte Ressourcen handeln. Autorisierung stellt also sicher, dass Sie nur das tun dürfen, wozu Sie die Berechtigung haben.

In Kontext von OpenID und OAuth 2.0 ist die Autorisierung oft der nächste Schritt nach der Authentifizierung. Hierbei wird dem Client (der Anwendung, die den Benutzer authentifiziert hat) ein Zugriffstoken ausgestellt. Dieses Token definiert, welche Ressourcen der Client im Namen des Benutzers abrufen oder manipulieren darf.

OIDC kompakt erklärt:

  • Authentifizierung: Bestätigt, dass Du bist, wer Du behauptest zu sein.
  • Autorisierung: Bestimmt, was Du tun darfst, nachdem Deine Identität bestätigt wurde.

Beide Begriffe sind im Kontext der Informationssicherheit und beim Umgang mit Identitätsmanagement in digitalen Systemen entscheidend, und sie arbeiten oft Hand in Hand, um einen umfassenden Sicherheitsmechanismus zu bieten.

OIDC ist somit wesentlich flexibler und sicherer als das ursprüngliche OpenID-Protokoll. Es ermöglicht auch die Übertragung von mehr Benutzerinformationen und hat erweiterte Sicherheitsfeatures. OIDC ist heute das gängige Auth-Standard-Protokoll und hat OpenID in vielen Anwendungen abgelöst.

  • Authentifizierung: Überprüfung der Identität eines Benutzers oder eines Dienstes.
  • OAuth 2.0: Ein offenes Standardprotokoll für die sichere API-Autorisierung.
  • Identitätsprovider (IdP): Ein Service, der Benutzeridentitäten verwaltet und Authentifizierungsdienste bereitstellt.
  • Token: Ein kurzes Stück Daten, das als Identifikator oder Zugangsschlüssel dient.

Hintergrund und Entwicklung

Die OpenID Foundation hat OIDC als modernisierte Version des ursprünglichen OpenID-Standards eingeführt, um die Anforderungen der heutigen komplexen digitalen Ökosysteme besser zu erfüllen. Es bietet erweiterte Möglichkeiten für die Übertragung von Benutzerinformationen und verbesserte Sicherheitsfeatures.

Technische Grundlagen

Authentifizierungsfluss

OpenID Connect verwendet verschiedene Authentifizierungsflüsse, die auf dem OAuth 2.0-Framework basieren. Die am häufigsten verwendeten Flüsse sind:

  1. Authorization Code Flow: Geeignet für Server-zu-Server-Authentifizierung.
  2. Implicit Flow: Geeignet für Browser-basierte Anwendungen.
  3. Hybrid Flow: Eine Kombination aus den beiden oben genannten Flüssen.

Tokens

OpenID Connect verwendet mehrere Arten von Tokens:

  • ID Token: Enthält die Identitätsinformationen des Benutzers.
  • Access Token: Wird verwendet, um auf geschützte Ressourcen zuzugreifen.
  • Refresh Token: Wird verwendet, um neue Access Tokens zu erhalten, ohne den Benutzer erneut authentifizieren zu müssen.

OpenID Connect vs. OpenID

Während OpenID primär für die Authentifizierung entwickelt wurde, erweitert OpenID Connect diese Funktionen um die Fähigkeit, zusätzliche Benutzerinformationen sicher und effizient zu übertragen.

Bedeutung und Relevanz von OpenID Connect in der Softwareentwicklung

OpenID Connect (OIDC) hat in der Softwareentwicklung eine wichtige Bedeutung und Relevanz, da es eine standardisierte Methode für die Authentifizierung von Benutzern bietet. Es baut auf dem OAuth 2.0-Protokoll auf und erweitert es um die Möglichkeit, sowohl Identitätsinformationen als auch Authentifizierungsinformationen zwischen dem Identity Provider und dem Service Provider auszutauschen. Hier sind einige Gründe, warum OpenID Connect in der Softwareentwicklung so relevant ist:

Vereinfachte Authentifizierung

Die Verwendung von OIDC erleichtert die Implementierung von sicheren Authentifizierungsmethoden. Entwickler müssen nicht von Grund auf eigene Authentifizierungssysteme bauen, was Zeit spart und mögliche Fehlerquellen reduziert.

Standardisierung

OIDC bietet einen Industriestandard, der von vielen großen Unternehmen und Organisationen unterstützt wird. Diese Standardisierung erleichtert die Integration verschiedener Dienste und Anwendungen erheblich.

Verbesserte Sicherheit

Im Vergleich zu einfachen Authentifizierungsmethoden wie Benutzername und Passwort bietet OIDC erweiterte Sicherheitsmerkmale wie Multi-Faktor-Authentifizierung, kurzlebige Tokens und automatische Token-Erneuerung.

Föderierte Identitäten

Durch OIDC können Benutzer ihre Identität über verschiedene Dienste hinweg teilen, ohne jedes Mal neue Zugangsdaten erstellen zu müssen. Das ist nicht nur benutzerfreundlich, sondern ermöglicht auch eine sichere und konsistente Benutzererfahrung über verschiedene Dienste hinweg.

Anwendungsfallvielfalt

OIDC kann in einer Vielzahl von Anwendungsfällen eingesetzt werden, von Web- und Mobile-Anwendungen bis hin zu API-Sicherheit und Microservices-Architekturen.

Flexibilität und Erweiterbarkeit

Durch die Nutzung von JSON Web Tokens (JWT) für die Identitätsinformationen bietet OIDC eine flexible und erweiterbare Struktur, die leicht an spezifische Anforderungen angepasst werden kann.

Dateneffizienz und Geschwindigkeit

OIDC ist so konzipiert, dass es minimale Datenmengen zwischen dem Client und dem Server austauscht, was zu einer schnelleren Verarbeitung und geringeren Netzwerklatenzen führt.

Insgesamt stellt OpenID Connect durch seine Standardisierung, Sicherheitsmerkmale und Flexibilität eine attraktive Option für die Authentifizierung und Identitätsverwaltung in modernen Softwareentwicklungsprojekten dar.

OpenID Foundation und Support

Die OpenID Foundation bietet eine Fülle von Informationen wie Spezifikationsdetails an, ferner Schulungen, Partnerschaften und ein Zertifizierungsprogramm. Mit diesen Angeboten fördert die Foundation die Verbreitung und  Implementierung von OIDC und garantiert im Gegenzug seine Interoperabilität und Sicherheit.

Fazit

OpenID Connect ist ein fortschrittliches Protokoll für die sichere und effiziente Authentifizierung in der modernen digitalen Welt. Durch die Erweiterung des OAuth 2.0-Frameworks bietet es verbesserte Funktionen und adressiert die Limitationen des ursprünglichen OpenID-Standards.