Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 1|Antwort: 0

Verständnis der code_challenge und code_vertifier von PKCE in OIDC

[Link kopieren]
Veröffentlicht amVor 19 Sekunden | | | |
OAuth 2.0 bietet mehrere Autorisierungsmodi, unter denen der Authorization Code Grant der am häufigsten genutzte und sicherste ist. code_challenge ist eine sicherheitsverstärkte Funktion in diesem Modus, hauptsächlich für den PKCE-Mechanismus (Proof Key for Code Exchange).

Was ist PKCE?

PKCE (Proof Key for Code Exchange) ist eine Erweiterung, die entwickelt wurde, um die Sicherheit des OAuth 2.0-Autorisierungscodemusters zu erhöhen, insbesondere wenn sie in öffentlichen Clients wie JavaScript-Anwendungen oder mobilen Apps in Browsern verwendet wird. PKCE verhindert, dass Autorisierungscodes abgefangen und missbraucht werden, indem ein zusätzlicher Authentifizierungsschritt zu Autorisierungsanfragen hinzugefügt wird.

code_challenge Rolle

code_challenge ist Teil des PKCE-Mechanismus, der während der Autorisierungsanforderungsphase generiert und gesendet wird. Er basiert auf einem geheimen Wert (genannt code_verifier), der durch einen Hashing-Algorithmus wie S256 transformiert wird. Zweck von code_challenge ist es, eine Validierungsbasis für nachfolgende Token-Anfragen bereitzustellen, ohne die code_verifier direkt offenzulegen.

Erzeugung und Nutzung von code_challenge und code_verifier

Generation code_verifier:
code_verifier ist eine zufällig generierte Zeichenkette mit hoher Entropie,Zeichenlänge (zwischen 43 und 128). Der Standardwert liegt bei 43。

Generation code_challenge:
Mit code_verifier wird code_challenge durch einen Hashing-Algorithmus (wie S256) generiert. Für S256 ist code_challenge die Base64-URL-Codierung des code_verifier SHA-256-Hashwerts, aber das =-Füllzeichen aus der Codierung muss entfernt werden, und die Ausgabelänge muss 43 Zeichen betragen (da nach der Base64-URL-Codierung alle 4 Zeichen 3 Bytes darstellen, aber der letzte Zeichenblock weniger als 4 Zeichen sein kann, sodass die Länge nach dem Entfernen von = Zeichen leicht variieren kann).

Verwenden Sie code_challenge bei Autorisierungsanfragen:
Beim Initiieren einer Autorisierungsanfrage wird code_challenge als einer der Anfrageparameter an den Autorisierungsserver gesendet.

Verwendung code_verifier in Token-Anfragen:
Wenn der Autorisierungsserver den Autorisierungscode zurückgibt, verwendet der Client diesen Code zusammen mit dem zuvor generierten code_verifier, um Zugriff auf den Token-Endpunkt anzufordern. Der Autorisierungsserver überprüft, ob code_challenge und code_verifier übereinstimmen, und stellt sicher, dass die Anfrage vom ursprünglichen Client initiiert wird.

PKCE-Generierung

Online-PKCE-Generierungstools:Der Hyperlink-Login ist sichtbar.

Der C#-Code wird wie folgt generiert:
Wie unten gezeigt:



Referenz:

Der Hyperlink-Login ist sichtbar.
Der Hyperlink-Login ist sichtbar.




Vorhergehend:.NET/C# Zwei Methoden zur Überprüfung der Gültigkeit der JWT-Token-Signatur
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com