Preskočiť na obsah

Generátor PKCE overovateľa a výzvy

Vygenerujte kryptograficky náhodný code_verifier a jeho code_challenge pre OAuth 2.0 PKCE.

43
Výstup

Generátor PKCE overovateľa a výzvy

Tento nástroj generuje PKCE code_verifier a jeho zodpovedajúci code_challenge pre tok autorizačného kódu OAuth 2.0 podľa RFC 7636. Je určený pre vývojárov, ktorí implementujú single-page aplikácie, mobilné aplikácie alebo akéhokoľvek verejného klienta, ktorý nemôže bezpečne uchovávať klientsky tajomstvo a potrebuje Proof Key for Code Exchange na ochranu autorizačného kódu pred zachytením.

code_verifier je kryptograficky náhodný reťazec postavený iba z nereservovaných znakov RFC 3986 (A–Z, a–z, 0–9, "-", ".", "_", "~"), dlhý medzi 43 a 128 znakmi — vyberte si presnú dĺžku pomocou posuvníka. Metóda výzvy určuje, ako sa code_challenge odvodí: S256 zahashovuje overovateľa pomocou SHA-256 a base64url zakóduje digest, a to je to, čo očakávajú všetky moderné OAuth sprievodce a autorizačné servery. Metóda plain jednoducho kopíruje overovateľa do výzvy bez zmeny; existuje v špecifikácii pre klientov s obmedzenými možnosťami, ktorí nemôžu vypočítať SHA-256, neposkytuje žiadnu ochranu pred zachytením a tento nástroj to jasne označuje.

Výstup obsahuje surový code_verifier a code_challenge, metódu, ktorú ste si vybrali, a hotový query string — code_challenge=...&code_challenge_method=... — ktorý môžete priamo vložiť do URL žiadosti o autorizáciu. Pamätajte na overovateľa samostatne: patrí do neskoršej žiadosti o token, nie do autorizačnej, a čerstvá dvojica by mala byť generovaná pre každý pokus o prihlásenie namiesto opätovného použitia.

Všetka generácia prebieha lokálne vo vašom prehliadači pomocou kryptograficky bezpečného náhodného zdroja Web Crypto API a implementácie SHA-256 — nič sa neukladá ani neloguje nikde. Kliknite na "Vygenerovať novú dvojicu" pre čerstvý verifier a challenge, skopírujte výstup alebo si ho stiahnite ako .txt súbor.

Časté otázky

Čo je PKCE a prečo to potrebujem?
PKCE (Proof Key for Code Exchange, RFC 7636) chráni tok autorizačného kódu OAuth 2.0 pre klientov, ktorí nemôžu uchovávať tajomstvo, ako sú single-page aplikácie a mobilné aplikácie. Spája žiadosť o autorizáciu s žiadosťou o token pomocou náhodného tajomstva, takže ukradnutý autorizačný kód nemôže byť uplatnený niekým iným.
Mám si vybrať S256 alebo plain?
Použite S256, pokiaľ váš klient skutočne nemôže vypočítať SHA-256. S metodou plain sa code_challenge rovná code_verifier, takže útočník, ktorý zachytí žiadosť o autorizáciu, už má všetko potrebné na výmenu kódu — S256 je to, čo očakávajú moderné autorizačné servery a často to jediná metóda, ktorú akceptujú.
Mohu znova použiť rovnaký verifier a challenge pre viacero prihlásení?
Nie. Vygenerujte novú dvojicu pre každý pokus o autorizáciu. Overovateľ je určený ako jednorazové tajomstvo viazané na jeden tok, nie ako pevná hodnota, ktorú vaša aplikácia hardkóduje.
Kam ide code_verifier a code_challenge?
code_challenge a code_challenge_method idú do počiatočnej URL žiadosti o autorizáciu. code_verifier sa posiela neskôr, v žiadosti o token, ktorá vymieňa autorizačný kód za tokeny — ponechajte ho v pamäti alebo úložisku relácie na klientovi až potom.
Je generovaný verifier niekde nahrnutý?
Nie. Generácia prebieha výlučne vo vašom prehliadači pomocou Web Crypto API. Nič sa neposiela na server, neloguje sa ani neuchovávajú mimo vašej relácie.