Az OAuth 2.0 több hitelesítési módot kínál, amelyek közül az Authorization Code Grant a leggyakoribb és legbiztonságosabb. code_challenge egy biztonsági fejlesztésű funkció ebben a módban, főként a PKCE (Proof Key for Code Exchange) mechanizmushoz használják.
Mi az a PKCE?
A PKCE (Proof Key for Code Exchange) egy kiterjesztés, amely az OAuth 2.0 engedélyezési kód minta biztonságának növelésére szolgál, különösen nyilvános kliensekben, például JavaScript alkalmazásokban vagy böngészőben futó mobilalkalmazásokban használat esetén. A PKCE megakadályozza, hogy az engedélyezési kódokat elfogják és visszahasználják, azáltal, hogy egy további hitelesítési lépést ad az engedélyezési kérelmekhez.
code_challenge Szerep
code_challenge a PKCE mechanizmus része, amelyet az engedélyezési kérelmek fázisában generálnak és küldenek. Egy titkos értéken (code_verifier-nek nevezik) alapul, amelyet egy hashing algoritmus, például az S256 alakít át. A code_challenge célja, hogy validációs alapot biztosítson a későbbi token kérések számára anélkül, hogy közvetlenül felfednék a code_verifier.
A code_challenge és code_verifier generálása és használata
code_verifier. generáció: code_verifier egy magas entrópiájú, véletlenszerűen generált lánc,Karakterhossz (43 és 128 között). Az alapértelmezett érték 43。
code_challenge. generáció: code_verifier használatával code_challenge egy hashing algoritmuson keresztül generálódik (például S256). S256 esetén code_challenge a code_verifier SHA-256 hash érték Base64 URL kódolása, de a kódolásból a = töltő karaktert el kell távolítani, és a kimeneti hossznak 43 karakternek kell lennie (mivel a Base64 URL kódolás után minden 4 karakter 3 bájtot képvisel, de az utolsó karakterblokk lehet kisebb 4 karakternél, így a hossz kissé változhat = karakterek eltávolítása után).
Használd code_challenge engedélyezési kérelmekhez: Engedélyezési kérelem indításakor code_challenge az egyik kérésparaméterként küldik el az engedélyezési szervernek.
Token kérésekben code_verifier használata: Amikor az engedélyezési szerver visszaadja az engedélyezési kódot, az ügyfél ezt a kódot használja a korábban generált code_verifier-vel együtt, hogy hozzáférést kérjen a token végponthoz. Az engedélyezési szerver ellenőrzi, hogy a code_challenge és a code_verifier egyeznek-e, biztosítva, hogy a kérést az eredeti kliens indítja.
PKCE generálás
Online PKCE generáló eszközök:A hiperlink bejelentkezés látható.
A C# kód a következőképpen generálódik:
Ahogy az alábbiakban látható:
Utalás:
A hiperlink bejelentkezés látható.
A hiperlink bejelentkezés látható. |