Přeskočit na obsah

Generátor PKCE ověřovatele a výzvy

Vytvořte kryptograficky náhodný code_verifier a jeho code_challenge pro OAuth 2.0 PKCE.

43
Výstup

Generátor PKCE ověřovatele a výzvy

Tento nástroj generuje PKCE code_verifier a jeho odpovídající code_challenge pro tok kódu autorizace OAuth 2.0 podle RFC 7636. Je určen vývojářům, kteří připravují single-page aplikace, mobilní aplikace nebo jakéhokoliv veřejného klienta, který nemůže bezpečně uchovávat klientský tajemství a potřebuje Proof Key for Code Exchange k ochraně autorizačního kódu před zachycením.

code_verifier je kryptograficky náhodný řetězec vytvořený pouze z nereservovaných znaků RFC 3986 (A–Z, a–z, 0–9, "-", ".", "_", "~"), dlouhý 43 až 128 znaků — zvolte si přesnou délku posuvníkem. Metoda výzvy určuje, jak se code_challenge odvodí: S256 zahašuje ověřovatele pomocí SHA-256 a base64url zakóduje výtah, a to je to, co očekávají všechny moderní průvodce OAuth a autorizační servery. Metoda plain jednoduše kopíruje ověřovatele do výzvy beze změny; existuje ve specifikaci pro omezené klienty, kteří nemohou vypočítat SHA-256, neposkytuje žádnou ochranu před zachycením a tento nástroj to jasně označuje.

Výstup obsahuje surový code_verifier a code_challenge, metodu, kterou jste zvolili, a připravený query string — code_challenge=...&code_challenge_method=... — který můžete vložit přímo do adresy URL žádosti o autorizaci. Pamatujte si ověřovatele samostatně: patří do pozdější žádosti o token, ne do autorizační, a pro každý pokus o přihlášení by měla být vygenerována čerstvá dvojice místo jejich opětovného použití.

Všechna generace probíhá lokálně ve vašem prohlížeči pomocí kryptograficky bezpečného náhodného zdroje Web Crypto API a implementace SHA-256 — nic se nikde neodesílá ani nezaznamenává. Klikněte na "Vytvořit nový pár" pro čerstvý ověřovatel a výzvu, zkopírujte výstup nebo si jej stáhněte jako soubor .txt.

Časté dotazy

Co je PKCE a proč ho potřebuji?
PKCE (Proof Key for Code Exchange, RFC 7636) chrání tok kódu autorizace OAuth 2.0 pro klienty, kteří nemohou uchovávat tajemství, jako jsou single-page aplikace a mobilní aplikace. Váže požadavek autorizace na požadavek tokenu pomocí náhodného tajemství, takže odcizený autorizační kód nemůže být uplatněn někým jiným.
Mám si vybrat S256 nebo plain?
Použijte S256, pokud váš klient opravdu nemůže vypočítat SHA-256. S metodou plain se code_challenge rovná code_verifier, takže útočník, který zachytí požadavek autorizace, už má vše potřebné k výměně kódu — S256 je to, co očekávají moderní autorizační servery a často jediná metoda, kterou přijímají.
Mohu znovu použít stejný ověřovatel a výzvu pro více přihlášení?
Ne. Vytvořte nový pár pro každý pokus o autorizaci. Ověřovatel je určen jako jednorázové tajemství vázané na jeden tok, nikoli jako pevná hodnota, kterou vaše aplikace natvrdo kóduje.
Kam jdou code_verifier a code_challenge?
code_challenge a code_challenge_method jdou do počáteční adresy URL požadavku autorizace. code_verifier se odešle později v požadavku tokenu, který vyměňuje autorizační kód za tokeny — ponechte jej v paměti nebo úložišti relace u klienta až do té doby.
Je generovaný ověřovatel někde nahrán?
Ne. Generování probíhá výhradně v přehlížeči pomocí Web Crypto API. Nic se neposílá na server, nezaznamenává se ani neukládá mimo vaší relace.