OpenID Connect (OIDC)

 

Was ist OIDC?

 

OpenID Connect (OIDC) ist ein offenes Authentifizierungsprotokoll, das auf dem OAuth 2.0-Framework basiert. OIDC richtet sich an Verbraucher und ermöglicht es Einzelpersonen, Single Sign-On (SSO) zu verwenden, um auf Anwendungen (vertrauende Parteien oder RPs) zuzugreifen, indem sie OpenID-Provider (OPs) wie einen E-Mail-Anbieter oder ein soziales Netzwerk nutzen, um ihre Identität zu authentifizieren. Es stellt der Anwendung oder dem Dienst Informationen über den Benutzer, den Kontext seiner Authentifizierung und den Zugriff auf seine Profilinformationen bereit.

 

Der Zweck von OIDC besteht darin, dass Benutzer einen einzigen Satz von Anmeldeinformationen bereitstellen, um auf mehrere Websites zuzugreifen. Jedes Mal, wenn sich Benutzer mit OIDC bei einer Anwendung oder einem Dienst anmelden, werden sie zu ihrem OP weitergeleitet, wo sie sich authentifizieren und dann zurück zur Anwendung oder zum Dienst weitergeleitet werden.

 

OIDC wurde entwickelt, um browserbasierte Anwendungen, APIs und mobile native Anwendungen zu schützen. Es delegiert die Benutzerauthentifizierung an den Dienstanbieter, der das Benutzerkonto verwaltet, und ermächtigt Drittanbieteranwendungen, auf die Informationen des Benutzers zuzugreifen.

 

OIDC-Beispiel

Zum Beispiel gibt es derzeit zwei Möglichkeiten, ein Spotify-Konto zu erstellen. Sie können sich bei Spotify registrieren oder sich über Facebook oder Google anmelden. Diese OPs senden dann ein ID-Token mit Ihren Informationen, wie Ihrem Namen und Ihrer E-Mail-Adresse, an Spotify, das das Token zur Validierung Ihrer Identität verwendet.

 

Was sind die Vorteile von OIDC?

 

Keine Verwaltung von Passwörtern mehr

OIDC ermöglicht es Organisationen, ein SSO-Erlebnis zu bieten, das den Zeitaufwand für die Anmeldung und das Merken von Passwörtern minimiert, was wiederum zu einem reibungsloseren Gesamterlebnis für die Benutzer führt. Beispielsweise brechen viele Kunden beim Online-Einkauf ihren Kaufvorgang ab, weil sie ihre Passwörter vergessen haben. SSO bietet jedoch einen einfacheren, frustrationsfreien Prozess, der zu einer stärkeren Kundenbindung, höheren Konversionsraten und einer größeren Markenpräsenz führt.

 

Höhere Sicherheit

Die SSO-Funktionen von OIDC verringern erheblich die Wahrscheinlichkeit eines passwortbezogenen Hacks. Mit SSO müssen sich Benutzer nur ein einziges Passwort für all ihre Anwendungen merken, und es ist weniger wahrscheinlich, dass sie Passwörter wiederverwenden oder sie aufschreiben, was das Risiko eines Diebstahls reduziert. Einfacher Zugriff ist besonders wertvoll für Mitarbeitende, die im Außendienst tätig sind oder von mehreren Geräten aus arbeiten.

 

Verbesserte Benutzererfahrung

Diese Lösung kann auch die IT-Kosten senken, indem die Anzahl der erforderlichen Passwörter auf ein einziges reduziert wird, und sie kann auch zur Stärkung von B2B-Partnerschaften genutzt werden. Die Nutzung von föderiertem SSO (oder föderiertem Identitätsmanagement) über OIDC kann Organisationen und Drittparteien, wie Anwendungsanbieter oder Partner, voneinander trennen und gleichzeitig Identitäten teilen und Benutzer domänenübergreifend authentifizieren. Wenn zwei Domänen föderiert sind, kann sich ein Benutzer bei einer Domäne authentifizieren und dann auf Ressourcen in der anderen Domäne zugreifen, ohne sich erneut anmelden zu müssen.

 

Warum sollten Sie OIDC verwenden?

 

Ähnlich wie bei anderen SSO-Lösungen bietet die Nutzung von OIDC folgende Vorteile:

 

  • Ermöglicht nahtloses SSO über mehrere Anwendungen und Dienste hinweg, was eine nahtlose Benutzererfahrung schafft.

  • Ermöglicht Organisationen eine effektivere Verwaltung der Benutzerdaten ihrer Kunden, freien Nutzer und/oder Mitarbeitenden.

  • Die Wahrscheinlichkeit von passwortbezogenen Hacks wird signifikant verringert, wodurch die Sicherheit verbessert wird, ohne die Benutzererfahrung zu beeinträchtigen.

OIDC ist einzigartig, weil:

 

  • Es handelt sich um einen Industriestandard, der auf einer Vielzahl von Plattformen weit verbreitet ist, einschließlich beliebter E-Mail-Anbieter und sozialer Netzwerke.

  • Es basiert auf dem OAuth 2.0-Protokoll und fügt die Benutzerauthentifizierung sowie die Identitätsverwaltung hinzu. OIDC-Flows können ein Zugriffstoken erhalten, was nützlich ist, wenn Sie auch APIs verwenden.

  • Es überprüft mit größerer Sicherheit, wer die Autorisierung zum Zugriff auf geschützte Ressourcen erteilt.

Wie funktioniert OIDC?

 

Eine OIDC-Lösung ermöglicht es dem OP, die verfügbaren Authentifizierungsmethoden zu bestimmen, wenn sich Benutzer anmelden. Er kann auch die Zustimmung des Benutzers zur Weitergabe von Identität an die vertrauende Partei einholen.  Darüber hinaus kann der OP eine Reihe von Authentifizierungsoptionen anbieten, darunter:

 

  • Passwortlos, einschließlich FIDO-Passkeys
  • Einmalpasswörter (OTP)
  • App-generierte Codes
  • Biometrische Faktoren, einschließlich Fingerabdruck- oder Gesichtserkennung
  • Föderierte Anmeldung, einschließlich Unternehmens-SSO oder OPs von Drittanbietern

Die vertrauende Partei kann den Authentifizierungsprozess des OP beeinflussen, indem sie beispielsweise eine Multi-Faktor-Authentifizierung (MFA) verlangt. Jedoch fällt die spezifische Art und Weise, wie die OPs die Benutzerauthentifizierung handhaben, nicht in den Anwendungsbereich des OIDC-Protokolls.

 

Da OICD auf OAuth 2.0 aufbaut, profitiert es von dem bewährten Framework von OAuth 2.0, das sicheren Zugriff auf Ressourcen gewährt, ohne Benutzeranmeldeinformationen preiszugeben. OAuth 2.0 übernimmt die Autorisierung (welche Daten oder Ressourcen zugänglich sind), während OIDC die Authentifizierung ergänzt (um sicherzustellen, dass der Benutzer tatsächlich die Person ist, für die er sich ausgibt). OIDC ist ähnlich wie OAuth 2.0, da Benutzer einer Anwendung die Erlaubnis erteilen, auf Daten oder Ressourcen einer anderen Anwendung zuzugreifen, ohne ihre Benutzernamen und Passwörter angeben zu müssen. Stattdessen werden Token verwendet, um sowohl die Authentifizierung als auch die Autorisierungsprozesse abzuschließen:

 

  • Identitätstoken, die vom Client gelesen werden sollen, belegen, dass Benutzer authentifiziert wurden und es sich um JSON-Web-Token (JWTs) handelt, ausgesprochen „jots“. Diese Dateien enthalten Informationen über den Benutzer, wie z. B. seine Benutzernamen, wann er versucht hat, sich bei der Anwendung oder dem Dienst anzumelden, und die Dauer, für die er auf die Online-Ressourcen zugreifen darf.

  • Zugriffstoken werden verwendet, um auf geschützte Ressourcen zuzugreifen, die von der API gelesen und validiert werden sollen. Diese Token können JWTs sein, aber sie könnten in einem anderen Format vorliegen. Ihr Zweck besteht darin, die API darüber zu informieren, dass der Inhaber dieses Tokens autorisiert wurde, auf die API zuzugreifen und bestimmte Aktionen auszuführen (wie durch den gewährten Berechtigungsumfang angegeben).

 

ID-Token dürfen nicht für API-Zugriffszwecke verwendet werden, und Zugriffstoken dürfen nicht zur Authentifizierung genutzt werden. Das folgende Diagramm zeigt, wie ein typischer OIDC-Authentifizierungsprozess funktioniert.

 

OpenID Connect-Abläufe

 

Es ist wichtig, die verschiedenen OIDC-Abläufe zu verstehen, um sicherzustellen, dass Sie die richtige Authentifizierungsmethode für Ihre Anwendung auswählen und dabei Sicherheit, Benutzerfreundlichkeit und Compliance im Auge behalten. Da OIDC die Verwendung von Berechtigungen eingestellt hat und der implizite OAuth 2.0-Ablauf aufgrund von Sicherheitsunsicherheiten veraltet ist, betont OIDC jetzt stärkere Optionen, wie z. B. den Proof Key for Code Exchange (PKCE), der dazu beiträgt, CSRF-(Cross-Site Request Forgery-) und Autorisierungscode-Injection-Angriffe zu verhindern.

 

Ablauf der OIDC-Authentifizierung

Diese Methode wird üblicherweise für Webanwendungen verwendet, die eine sichere Backend-Kommunikation mit Identitätsanbietern erfordern. Sie funktioniert mit einem dreistufigen Prozess, bei dem anstelle von Benutzerdaten einmalige Autorisierungscodes gesendet werden. Diese Codes werden dann gegen OAuth 2.0-Zugriffstoken ausgetauscht, sodass die App sich mit ihrer Client-ID und ihrem Geheimnis sicher authentifizieren kann. Diese Methode stellt sicher, dass der Browser keinen direkten Zugriff auf die Token hat, was die Sicherheit erhöht und es dem Identitätsanbieter ermöglicht, die Legitimität der App zu bestätigen.

 

OIDC-Autorisierungscode-Ablauf

Dieser Ablauf wird häufig für serverseitige Anwendungen genutzt. Er funktioniert, indem Anwendungen Autorisierungscodes von einem Autorisierungsendpunkt anfordern, die dann je nach Bedarf gegen Identitätstoken oder OAuth 2.0-Zugriffstoken ausgetauscht werden können. Client-Anwendungen können ebenfalls PKCE verwenden, um unautorisierte Code-Injektionen zu verhindern.

 

Da Identitäts- und Zugriffstoken nicht im Browser sichtbar sind, können Aktualisierungstoken verwendet werden, um im Namen des Benutzers Aktionen durchzuführen, selbst wenn dieser nicht mehr aktiv ist. Dieser Ablauf ist für Clients gedacht, die ein „Client-Geheimnis“, einen vertraulichen Schlüssel oder ein Passwort, das in OAuth 2.0 verwendet wird, sicher zwischen sich und dem Autorisierungsserver aufrechterhalten können. Sorgfältige Planung und kontinuierliche Überwachung sind entscheidend, um die Sicherheit zu gewährleisten.

 

OIDC-Hybrid-Flow

Entwickelt für Kunden, die einen Autorisierungscode verarbeiten müssen, bevor sie ihn gegen Token oder nicht sensible Daten austauschen, ermöglicht dieser Ablauf den Autorisierungsendpunkten, sowohl Autorisierungscodes als auch Token zurückzugeben. Während des Prozesses werden eine Nonce-Validierung und Code-Hash-Prüfungen durchgeführt, um die Integrität sicherzustellen. Client-Anwendungen können ebenfalls PKCE verwenden, um unautorisierte Code-Injektionen zu verhindern.

 

Obwohl dieser Ablauf Flexibilität bietet, ist er für sensible Daten nicht geeignet, da die Token im Browser offengelegt werden. Wie der Autorisierungscodefluss ermöglicht er Offline-Aktionen im Namen von Benutzern, was ihn ideal für vertrauliche Kunden macht, die die Sicherheit effektiv verwalten können.

 

OIDC-Implicit-Flow

Er wurde für nicht sensible Daten und browserbasierte Anwendungen entwickelt und ermöglicht es Autorisierungsendpunkten, Identitätstoken direkt anzufordern, mit der Möglichkeit, bei Bedarf OAuth 2.0-Zugriffstoken anzufordern.

 

Der Ablauf wird jedoch als eine weniger sichere Option angesehen, da die Token dem Browser und seinem zugrunde liegenden Code ausgesetzt sind. Dies vergrößert die Angriffsfläche erheblich, daher sollte die Verwendung auf Token beschränkt werden, die keine sensiblen Daten enthalten, einschließlich personenbezogener Informationen (PII), und für die Validierung von einmalig verwendeten Nummern (Nonce).

 

Es ist wichtig zu beachten, dass die Best Current Practices für die Sicherheit von OAuth 2.0 aus Sicherheitsgründen davon abraten, den impliziten Ablauf zu verwenden, da er weitgehend zugunsten sichererer Optionen wie dem Autorisierungscode-Ablauf mit PKCE veraltet ist.

 

Unterschiede zwischen SAML, OAuth 2.0 und OpenID Connect

 

OpenID Connect im Vergleich zu OAuth 2.0

 

OAuth 2.0 ist ein offener Standardrahmen für die API-Autorisierung. Es wird definiert, wie ein API-Client Sicherheitstoken erhalten kann, die eine Reihe von Berechtigungen für die über diese API verfügbaren Ressourcen enthalten.

 

Anstatt dass ein Benutzer Anmeldeinformationen mit einer Anwendung teilen muss, um dieser Anwendung Zugriff auf eine andere zu gewähren, delegiert OAuth 2.0 die Autorisierungsentscheidungen an einen separaten Autorisierungsserver, der das Benutzerkonto verwaltet. Im Wesentlichen agiert OAuth 2.0 im Namen des Benutzers und ermöglicht delegierten Zugriff auf einen Drittanbieterdienst, ohne dass der Benutzer seine Anmeldedaten an diesen Dritten preisgeben muss.

 

Der Hauptunterschied besteht darin, dass OAuth 2.0 ein Autorisierungsframework ist, das zum Schutz von Ressourcen verwendet wird, während OIDC ein Authentifizierungsprotokoll ist, das auf OAuth 2.0 aufbaut, um die Benutzeranmeldung abzuwickeln. SAML hingegen ist ein föderierter Identitätsstandard, der sowohl die Authentifizierung als auch die Autorisierung regelt.

 

Was ist der Unterschied zwischen SAML und OIDC?

 

SAML und OIDC sind beides leistungsstarke Authentifizierungsprotokolle, die verwendet werden, um sichere Anmeldeerlebnisse zu schaffen, aber sie werden für unterschiedliche Zwecke eingesetzt.

 

  • SAML ist ein älterer Standard und wird in Unternehmen, die webbasierte Anwendungen nutzen, weit verbreitet eingesetzt, während OIDC neuer ist und bei mobilen und nativen Anwendungen an Bedeutung gewinnt.

  • SAML wird hauptsächlich für browserbasierte Anwendungen verwendet und kann auf Mobilgeräten über browserbasiertes SSO genutzt werden, unterstützt jedoch keinen nativen API-Zugriff. OAuth 2.0 ermöglicht den Zugriff auf APIs, und OIDC ermöglicht den Zugriff auf APIs, mobile native Anwendungen und browserbasierte Anwendungen.

  • OIDC kann öffentliche, von Drittanbietern bereitgestellte OPs wie Google und Microsoft oder private OPs in Unternehmensumgebungen zur Authentifizierung von Benutzern verwenden. Mit OIDC kann ein Benutzer Zugriff auf eine Anwendung erhalten, indem er sich mit einem vertrauenswürdigen, OIDC-kompatiblen Konto anmeldet.

  • Für große Unternehmen, die ein höheres Maß an Sicherheit benötigen, könnte SAML die bessere Wahl sein. SAML ermöglicht eine Multi-Faktor-Authentifizierung, ist funktionsreich und seit mehr als einem Jahrzehnt ein fester Bestandteil der Unternehmenssicherheit.

  • SAML ist für seine Flexibilität bekannt, aber die meisten Entwickler finden OIDC weniger komplex.

  • SAML verwendet Token, die in XML geschrieben sind, und OIDC verwendet JWTs, die portabel sind und eine Vielzahl von Signatur- und Verschlüsselungsalgorithmen unterstützen.

Zusätzliche Unterschiede umfassen:

 

  • SAML ist für seine Flexibilität bekannt, aber die meisten Entwickler finden OIDC einfacher zu verwenden, da es weniger komplex ist.

  • SAML wird für den Zugriff auf browserbasierte Anwendungen verwendet und unterstützt weder SSO für mobile Geräte noch den API-Zugriff. OAuth 2.0 ermöglicht den Zugriff auf APIs, und OIDC ermöglicht den Zugriff auf APIs, mobile native Anwendungen und browserbasierte Anwendungen.

  • OIDC dreht sich darum, wer eine Person ist. Bei OAuth 2.0 geht es darum, was sie tun dürfen.

  • SAML verwendet Token, die in XML geschrieben sind, und OIDC verwendet JWTs, die portabel sind und eine Vielzahl von Signatur- und Verschlüsselungsalgorithmen unterstützen.

Vorteile von OIDC für Entwickler

 

OIDC ist einer der neuesten verfügbaren Sicherheitsstandards und wird von Entwicklern verwendet, die mobile Anwendungen, APIs und browserbasierte Anwendungen unterstützen. Weitere Leistungen umfassen:

 

Keine Verwaltung von Passwörtern mehr

Da Token anstelle von Benutzernamen und Passwörtern zur Durchführung der Authentifizierung und Autorisierungsprozesse verwendet werden, sind die Entwickler nicht mehr für das Festlegen, Speichern und Verwalten von Passwörtern verantwortlich, was häufig die Ursache für datenbasierte Sicherheitsverletzungen ist.

 

Höhere Sicherheit

Die Verwendung von Token macht es zu einem hochsicheren Protokoll. Nicht nur werden Benutzeranmeldeinformationen nicht weitergegeben, sondern es wird den Benutzern auch ermöglicht, sich bei mehreren Anwendungen anzumelden, ohne für jede einen separaten Benutzernamen und ein separates Passwort erstellen zu müssen, was leicht kompromittiert werden kann.

 

Leichte Implementierung

OIDC ist ein offener Standard und ein dezentrales Authentifizierungsprotokoll, das es Websites und Authentifizierungsdiensten ermöglicht, Informationen auf standardisierte Weise sicher auszutauschen.

 

Häufig gestellte OIDC-Fragen

Es ist einfach, zuverlässig und sicher und eliminiert die Notwendigkeit, Passwörter zu speichern und zu verwalten. Es verbessert das Benutzererlebnis bei der Anmeldung und Registrierung und verringert die Abbruchrate der Website. Darüber hinaus erhöhen auf Public-Key-Verschlüsselung basierende Authentifizierungs-Frameworks wie OpenID Connect die Sicherheit des gesamten Internets, indem sie die Verantwortung für die Überprüfung der Benutzeridentität in die Hände der erfahrensten Dienstanbieter legen.

 

Entwickler sollten OIDC verwenden, wenn sie mobile Anwendungen, Zugriff auf APIs und browserbasierte Anwendungen unterstützen.

OpenID Connect weist viele architektonische Ähnlichkeiten zu OpenID 2.0 auf, und tatsächlich lösen die Protokolle eine sehr ähnliche Reihe von Problemen. OpenID 2.0 verwendete jedoch XML und ein benutzerdefiniertes Nachrichtensignaturschema, das sich in der Praxis manchmal als schwierig für Entwickler erwies, mit der Folge, dass sich OpenID 2.0-Implementierungen manchmal auf mysteriöse Weise weigerten, miteinander zu interagieren. OAuth 2.0, das Substrat für OpenID Connect, überträgt die notwendige Verschlüsselung an die im Web integrierte TLS-Infrastruktur (auch HTTPS oder SSL genannt), die universell sowohl auf Client- als auch auf Serverplattformen implementiert ist. OpenID Connect verwendet standardmäßige JSON Web Token-(JWT-)Datenstrukturen, wenn Signaturen erforderlich sind. Dies macht OpenID Connect für Entwickler dramatisch einfacher zu implementieren und hat in der Praxis zu einer viel besseren Interoperabilität geführt.

 

Der Hauptunterschied zwischen diesen Standards besteht darin, dass OAuth 2.0 ein Autorisierungsrahmen ist, der zum Schutz spezifischer Ressourcen wie Anwendungen oder Dateisätze verwendet wird, während OIDC ein Authentifizierungsprotokoll ist, das zur Schaffung sicherer Anmeldeerlebnisse verwendet wird. Bei OIDC geht es darum, wer jemand ist, während es bei OAuth 2.0 darum geht, was man tun darf, wenn man auf die Ressource zugreift.

Die FIDO Alliance ist eine Organisation, in der Technologien zur Authentifizierung ohne Passwort erforscht werden. Einige Mitglieder der OpenID Foundation sind auch Mitglieder der FIDO Alliance und arbeiten dort an Authentifizierungstechnologien, die von OpenID-Anbietern genutzt werden können.

 

Die FIDO Alliance ist ein offener Industrieverband, der sich auf die Entwicklung von Authentifizierungsstandards konzentriert, die „dazu beitragen, die übermäßige Abhängigkeit der Welt von Passwörtern zu verringern“. Einige Mitglieder der OIDC Foundation sind auch Mitglieder der FIDO Alliance, die an Authentifizierungstechnologien arbeiten, die von OpenID-Anbietern genutzt werden können.

OpenID Connect identifiziert eine Reihe persönlicher Attribute, die zwischen OPs und den Apps, die sie verwenden, ausgetauscht werden können, und umfasst einen Genehmigungsschritt (auch Autorisierung genannt), sodass Benutzer der Weitergabe dieser Informationen zustimmen oder diese ablehnen können.

 

Da Token zur Authentifizierung von Benutzern anstelle von Benutzernamen und Passwörtern verwendet werden, müssen Benutzer ihre Anmeldeinformationen nicht mit den Anwendungen teilen, auf die sie zugreifen.

Starten Sie jetzt

Kontaktieren Sie uns

sales@pingidentity.com

Erfahren Sie, wie Ping Ihnen helfen kann, sichere Erlebnisse für Mitarbeiter, Partner und Kunden in einer sich schnell wandelnden digitalen Welt zu bieten.