Zum Inhalt springen
ecdsa.com

PKCE (Proof Key for Code Exchange)

Die OAuth-Erweiterung aus RFC 7636, bei der der Client mit der Autorisierungsanfrage einen Hash eines zufälligen code_verifier sendet und mit der Token-Anfrage den Verifier selbst, sodass ein abgefangener Autorisierungscode nutzlos ist.
Auch geschrieben alsPKCEProof Key for Code Exchangecode_verifiercode_challengeS256

Der Client erzeugt einen code_verifier aus 43–128 Zeichen des nicht reservierten URL-Alphabets, sendet in der Autorisierungsanfrage code_challenge = BASE64URL(SHA256(code_verifier)) mit code_challenge_method=S256 und weist später den Besitz nach, indem er den Verifier an den Token-Endpunkt schickt. Die Methode plain sendet den Verifier selbst als Challenge und sollte nicht verwendet werden.

PKCE wurde für mobile Apps entwickelt, in denen andere Apps Redirect-URIs abfangen könnten, verhindert aber auch das Einschleusen fremder Autorisierungscodes in Web-Apps; deshalb empfiehlt RFC 9700 es für jeden Client, und der Entwurf von OAuth 2.1 schreibt es vor. PKCE ersetzt nicht die Client-Authentifizierung bei vertraulichen Clients, und der Autorisierungsserver muss Token-Anfragen ablehnen, denen der Verifier fehlt, wenn eine Challenge gesendet wurde.

Standards und Quellen

Alle Begriffe