Suchergebnisse :

×

Meldet sich ein Benutzer über OAuth SSO bei einer Joomla-Website an, sendet der Identitätsanbieter einen Autorisierungscode über den Browser zurück. Die Anwendung tauscht diesen Code dann gegen ein Zugriffstoken ein. In den meisten Fällen funktioniert dies einwandfrei. Es gibt jedoch ein Problem: Gelingt es jemandem, den Autorisierungscode abzufangen, bevor er die Anwendung erreicht, kann er damit selbst ein Zugriffstoken erlangen.

PKCE (Proof Key for Code Exchange) verhindert dies. Vor dem Anmeldevorgang generiert die Anwendung ein zufälliges Geheimnis, sendet eine gehashte Version davon an den Identitätsanbieter und beweist anschließend beim Austausch des Codes gegen ein Token, dass sie das Original besitzt. Ein abgefangener Autorisierungscode ist ohne diesen Nachweis nutzlos, da nur die ursprüngliche Anwendung darüber verfügt.

Die miniOrange Joomla OAuth Client-Erweiterung unterstützt PKCE standardmäßig. Durch die Aktivierung wird diese Sicherheitsebene zu Ihrer bestehenden SSO-Konfiguration hinzugefügt, ohne dass sich etwas an der Benutzeranmeldung ändern muss.

Um PKCE-geschütztes OAuth-SSO auf einer Joomla-Website zu aktivieren, benötigen Sie Folgendes:

Usecase-Kartenlogo

miniOrange OAuth-Client-Erweiterung für Joomla

Erweiterung herunterladen

Die meisten Joomla-Websites mit OAuth-SSO verwenden den standardmäßigen Autorisierungscode-Flow ohne PKCE. Dies ist in vielen Fällen ausreichend, birgt aber einige Risiken, die es zu verstehen gilt.

Autorisierungscodes werden als URL-Parameter vom Browser übertragen und können daher im Browserverlauf, in Serverprotokollen und Referrer-Headern landen. Es besteht ein kurzes Zeitfenster, in dem sie angreifbar sind. Bei Anwendungen, die Client-Geheimnisse nicht sicher speichern können, wie beispielsweise Single-Page-Anwendungen oder browserbasierte SSO-Verfahren, ist der Autorisierungscode die einzige Schutzmaßnahme zwischen dem Benutzerkonto und einem Angreifer, der ihn in die Hände bekommen hat.

OAuth 2.1, das den aktuellen Sicherheitsstandards entspricht, schreibt PKCE für alle Autorisierungscode-Abläufe vor. Organisationen, die die Einhaltung von Standards wie SOC 2 oder ISO 27001 anstreben, müssen dies zunehmend implementieren.

Ohne PKCE gibt es auch keinen kryptografischen Beweis dafür, dass der Client, der den Token-Austausch durchführt, derselbe ist, der den Login initiiert hat. Diese Lücke erschwert die Durchführung einwandfreier Sicherheitsaudits.

Die Einrichtung von PKCE über die miniOrange OAuth-Client-Erweiterung ist unkompliziert. Im Folgenden wird die Konfiguration erläutert.


1. PKCE in der Erweiterung aktivieren: In den OAuth-Anbietereinstellungen der miniOrange-Erweiterung gibt es eine Option zum Aktivieren von PKCE. Nach der Aktivierung übernimmt die Erweiterung alles automatisch: Sie generiert zu Beginn jedes Logins einen zufälligen Code-Verifizierer, erstellt daraus eine gehashte Challenge und sendet diese Challenge als Teil der Autorisierungsanfrage an den Identitätsanbieter. Beim Token-Austausch wird der ursprüngliche Verifizierer zusammen mit dem Autorisierungscode gesendet, damit der Identitätsanbieter die Übereinstimmung bestätigen kann.


2. Auswahl der Code-Challenge-Methode: Die Erweiterung unterstützt zwei Methoden: S256 und die einfache Methode. Bei S256 wird der Code-Verifizierer vor dem Senden der Challenge mit SHA-256 gehasht, sodass das ursprüngliche Geheimnis niemals übertragen wird. Die einfache Methode sendet den Verifizierer direkt als Challenge, was keinen wirksamen Schutz bietet. Für jede produktive Joomla-Website ist S256 die richtige Wahl und wird von den meisten modernen Identitätsanbietern unterstützt.


3. Aktualisierung der Identitätsanbieterkonfiguration: Auf Seiten des Identitätsanbieters muss die Anwendungsregistrierung so aktualisiert werden, dass PKCE erforderlich ist. Dies bedeutet in der Regel, die Anwendung als öffentlichen Client zu kennzeichnen oder die PKCE-Erzwingung in den App-Einstellungen zu aktivieren. Die genauen Schritte variieren je nach Anbieter. Die PKCE-Pflicht auf Anbieterebene ist wichtig, da dadurch jeder Token-Austausch ohne gültigen Code-Verifizierer abgelehnt wird, selbst wenn der Autorisierungscode erfasst wurde.


4. Testen des Ablaufs: Eine erfolgreiche PKCE-fähige Anmeldung sieht für den Benutzer genauso aus wie eine reguläre SSO-Anmeldung. Um die Funktion zu bestätigen, prüfen Sie, ob die URL der Autorisierungsanfrage die Parameter `code_challenge` und `code_challenge_method` enthält. Um die Sicherheitsgarantie zu testen, versuchen Sie, einen erfassten Autorisierungscode ohne Codeverifizierer erneut abzuspielen; der Identitätsanbieter sollte den Tokenaustausch mit einer Fehlermeldung ablehnen.

PKCE ist eines der praktischsten Sicherheits-Upgrades für OAuth-SSO unter Joomla, da es ein reales Problem löst, ohne die Benutzerfreundlichkeit zu beeinträchtigen. Der Anmeldevorgang bleibt unverändert, der Autorisierungscode ist jedoch für jeden, der ihn abfängt, wertlos. Da PKCE sich zum Standard für OAuth-Implementierungen entwickelt, sorgt die Aktivierung über die miniOrange OAuth Client-Erweiterung dafür, dass Ihre Joomla-SSO-Konfiguration den aktuellen Best Practices entspricht und sich im Falle einer Sicherheitsüberprüfung leichter verteidigen lässt.

  1. Zugriffssicherheit durch Abschottung – OAuth-Protokoll in Joomla!
  2. SAML vs. OAuth in Joomla: Was sollten Sie wählen?
  3. Schauen Sie sich unsere Dokumentation an

Wir melden uns so schnell wie möglich bei Ihnen

mo-Form

 Danke für Ihre Antwort. Wir werden uns bald bei Ihnen melden.

Etwas ist schief gelaufen. Bitte senden Sie Ihre Anfrage erneut

Inhaltsverzeichnis

Hallo!

Brauchen Sie Hilfe? Wir sind hier!

Unterstützung