window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-JYLJ7J3717');

[wpml_language_switcher type="footer" flags=1 native=1 translated=0 link_current=0][/wpml_language_switcher]

OpenID Connect – OIDC

OpenID Connect – OIDC

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.

 

Share This Story, Choose Your Platform!

OpenID Connect – OIDC

OpenID Connect (OIDC) is an extension of the OAuth 2.0 protocol and is used for secure and efficient authentication of users and technical services. OIDC stands for OpenID Connect and is an extension of the OpenID protocol. It was developed to overcome the limitations of the original OpenID standard and provides advanced security mechanisms and user information transfer.

Authorization and authentication of digital identities

OpenID Connect builds on the OAuth 2.0 protocol developed for authorization and extends it to enable authentication as well.

The terms „authentication“ and „authorization“ are often confused with each other or used interchangeably, although they represent different concepts in information security. Here, therefore, is an easy-to-understand explanation of the two IT security concepts:

Authentication

Authentication is the process of verifying the identity of a person, system, or entity. Simply put, authentication ensures that you are who you say you are. This is usually done by entering a username and password, but it can also be done through other mechanisms such as biometrics, smart cards, or two-factor authentication (2FA).

In the context of OpenID and OpenID Connect, authentication is the step where the user confirms their identity to an Identity Provider (IdP).

A successful authentication process usually results in the issuance of a token representing this confirmed identity.

Example of a valid token in the OIDC authentication process

Here you can see a JSON web token as an illustrative example of a token with a cipher suite considered secure such as ES256 (Elliptic Curve Digital Signature Algorithm) for the algorithm:

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
}

This example uses the ES256 algorithm, which uses elliptic curve cryptography (ECC) and is still considered secure. The kid (Key ID) would be an identifier for the public key used to verify the token.

After the header and payload are generated, they would be encoded and signed with the identity provider’s private key to produce the full JWT. It would be a combination of these encoded and signed values, separated by dots ..

Authorization

After authentication comes authorization. It determines which resources or actions the authenticated user or system may access or perform. These can be files, databases, APIs and other protected resources. Authorization therefore ensures that you are only allowed to do what you are authorized to do.

In the context of OpenID and OAuth 2.0, authorization is often the next step after authentication. Here, an access token is issued to the client (the application that authenticated the user). This token defines which resources the client is allowed to retrieve or manipulate on behalf of the user.

OIDC explained compactly:

  • Authentication: Confirms that you are who you say you are.
  • Authorization: Determines what you are allowed to do after your identity has been confirmed.

Both concepts are critical in the context of information security and when dealing with identity management in digital systems, and they often work hand in hand to provide a comprehensive security mechanism.

OIDC is thus much more flexible and secure than the original OpenID protocol. It also allows the transfer of more user information and has advanced security features. OIDC is now the common Auth standard protocol and has replaced OpenID in many applications.

  • Authentication: Verification of the identity of a user or a service.
  • OAuth 2.0: An open standard protocol for secure API authorization.
  • Identitätsprovider (IdP): A service that manages user identities and provides authentication services.
  • Token: A short piece of data that serves as an identifier or access key.

Background and development

The OpenID Foundation launched OIDC as a modernized version of the original OpenID standard to better meet the needs of today’s complex digital ecosystems. It offers enhanced capabilities for transferring user information and improved security features.

Technical basics

Authentication flow

OpenID Connect uses several authentication flows based on the OAuth 2.0 framework. The most commonly used rivers are:

  1. Authorization Code Flow: Suitable for server-to-server authentication.
  2. Implicit Flow: Suitable for browser-based applications.
  3. Hybrid Flow: A combination of the two rivers mentioned above.

Tokens

OpenID Connect uses several types of tokens:

  • ID Token: Contains the user’s identity information.
  • Access Token: Used to access protected resources.
  • Refresh Token: Used to obtain new Access Tokens without having to authenticate the user again.

OpenID Connect vs. OpenID

While OpenID was primarily designed for authentication, OpenID Connect extends these capabilities with the ability to securely and efficiently transfer additional user information.

Significance and relevance of OpenID Connect in software development

OpenID Connect (OIDC) has important meaning and relevance in software development because it provides a standardized method for authenticating users. It builds on the OAuth 2.0 protocol and extends it with the ability to exchange both identity information and authentication information between the identity provider and the service provider. Here are some reasons why OpenID Connect is so relevant in software development:

Simplified authentication

The use of OIDC facilitates the implementation of secure authentication methods. Developers don’t have to build their own authentication systems from scratch, which saves time and reduces potential points of failure.

Standardization

OIDC provides an industry standard that is supported by many large companies and organizations. This standardization greatly facilitates the integration of various services and applications.

Improved security

Compared to simple authentication methods such as username and password, OIDC offers advanced security features such as multi-factor authentication, short-lived tokens, and automatic token renewal.

Federated identities

Through OIDC, users can share their identity across different services without having to create new credentials each time. This is not only user-friendly, but also enables a secure and consistent user experience across different services.

Use case diversity

OIDC can be used in a variety of use cases, from web and mobile applications to API security and microservices architectures.

Flexibility and expandability

By using JSON Web Tokens (JWT) for identity information, OIDC provides a flexible and extensible structure that can be easily customized to meet specific requirements.

Data efficiency and speed

OIDC is designed to exchange minimal amounts of data between the client and the server, resulting in faster processing and lower network latencies.

Overall, OpenID Connect’s standardization, security features and flexibility make it an attractive option for authentication and identity management in modern software development projects.

OpenID Foundation and Support

The OpenID Foundation offers a wealth of information such as specification details, as well as training, partnerships and a certification program. With these offerings, the Foundation promotes the dissemination and implementation of OIDC and, in return, guarantees its interoperability and security.

Conclusion

OpenID Connect is an advanced protocol for secure and efficient authentication in the modern digital world. By extending the OAuth 2.0 framework, it provides improved functionality and addresses the limitations of the original OpenID standard.

 

Share This Story, Choose Your Platform!

Nach oben