OAuth-Debugger
Privacy FirstOAuth 2.0/PKCE-Authentifizierungsflüsse debuggen.
PKCE Generator
Click Generate to create a cryptographically random code_verifier and derive its SHA-256 code_challenge.
Authorization URL Builder
Security Analyzer
Describe your OAuth configuration and get security recommendations.
Security Findings
Was ist PKCE, und warum ist es wichtig?
Proof Key for Code Exchange (PKCE, RFC 7636) wurde ursprünglich für mobile und native Apps entwickelt, die kein Client-Secret sicher speichern können. Dabei generiert der Client einen zufälligen code_verifier, leitet daraus eine code_challenge ab (SHA-256 + base64url) und sendet die Challenge mit der Autorisierungsanfrage. Beim Austausch des Autorisierungscodes gegen Tokens sendet der Client den ursprünglichen code_verifier. Der Autorisierungsserver überprüft, ob er mit der früheren Challenge übereinstimmt — und beweist so, dass die Token-Anfrage vom selben Client stammt, der den Flow gestartet hat.
Selbst für vertrauliche Clients (serverseitige Apps mit einem Client-Secret) wird PKCE inzwischen von OAuth 2.1 als Schutz gegen Interception-Angriffe auf Autorisierungscodes empfohlen.
Warum ist der Implicit Flow veraltet?
Der Implicit Flow (response_type=token) wurde als Abkürzung für Single-Page-Apps konzipiert und gibt das Access Token direkt im URL-Fragment zurück. Das verursacht ernste Probleme: Tokens in URLs erscheinen im Browserverlauf, in Server-Logs und in Referrer-Headern, und der Flow ist anfällig für Token-Injection-Angriffe. OAuth 2.0 Security Best Current Practice (RFC 9700) und OAuth 2.1 entfernen den Implicit Flow explizit zugunsten von Authorization Code + PKCE, das SPAs sicher ohne Client-Secret verwenden können.
Wichtige Änderungen in OAuth 2.1
- PKCE erforderlich für alle Authorization-Code-Flows, einschließlich vertraulicher Clients.
- Implicit Flow entfernt — verwenden Sie stattdessen Authorization Code + PKCE.
- Resource Owner Password Credentials (ROPC) entfernt — der
password-Grant-Type ist veraltet. - Refresh-Token-Rotation erforderlich für öffentliche Clients — bei jeder Verwendung muss ein neues Refresh-Token ausgestellt werden.
- Exakte Redirect-URI-Übereinstimmung erforderlich — kein Pattern-Matching oder Wildcards.
Authorization Code Flow Schritt für Schritt
- PKCE-Paar generieren: Erstellen Sie einen zufälligen
code_verifierund berechnen Siecode_challenge = BASE64URL(SHA256(code_verifier)). - Weiterleitung zum Authorization-Endpunkt: Fügen Sie
response_type=code,client_id,redirect_uri,scope,state,code_challengeundcode_challenge_method=S256hinzu. - Der Benutzer authentifiziert sich beim Autorisierungsserver und erteilt seine Zustimmung.
- Empfang des Autorisierungscodes an Ihrer
redirect_urizusammen mit dem zurückgegebenenstate— überprüfen Sie, obstatemit dem gesendeten Wert übereinstimmt. - Code gegen Tokens tauschen: POST an den Token-Endpunkt mit
grant_type=authorization_code,code,redirect_uri,client_idundcode_verifier. - Empfang des Access Tokens (und optional
id_tokenundrefresh_token) und Verwendung zum Aufrufen von APIs.