OAuth 2.0 pakub mitut autoriseerimisrežiimi, millest kõige sagedamini kasutatakse ja turvaliselt on Authorization Code Grant. code_challenge on selle režiimi turvalisust tugevdav funktsioon, mida kasutatakse peamiselt PKCE (Proof Key for Code Exchange) mehhanismi jaoks.
Mis on PKCE?
PKCE (Proof Key for Code Exchange) on laiendus, mis on loodud OAuth 2.0 autoriseerimiskoodi mustri turvalisuse suurendamiseks, eriti kui seda kasutatakse avalikes klientides nagu JavaScripti rakendused või mobiilirakendused, mis töötavad brauserites. PKCE takistab autoriseerimiskoodide pealtkuulamist ja väärkasutamist, lisades autoriseerimistaotlustele täiendava autentimisetapi.
code_challenge Roll
code_challenge on osa PKCE mehhanismist, mis genereeritakse ja saadetakse autoriseerimistaotluse faasis. See põhineb salajasel väärtusel (nimetatakse code_verifier), mida teisendab räsi algoritm nagu S256. code_challenge eesmärk on pakkuda valideerimisalust järgnevatele tokenipäringutele ilma code_verifier otseselt paljastamata.
code_challenge ja code_verifier genereerimine ja kasutamine
code_verifier. põlvkond: code_verifier on kõrge entroopiaga juhuslikult genereeritud string,Tähemärgi pikkus (vahemikus 43 kuni 128). Vaikimisi väärtus on 43。
code_challenge. põlvkond: code_verifier abil genereeritakse code_challenge räsi algoritmi abil (näiteks S256). S256 puhul on code_challenge Base64 URL-i kodeering code_verifier SHA-256 räsi väärtusele, kuid = täitemärk kodeerimisest tuleb eemaldada ning väljundpikkus peab olema 43 märki (kuna pärast Base64 URL-kodeerimist esindab iga 4 tähemärki 3 baiti, kuid viimane märgiplokk võib olla väiksem kui 4 tähemärki, mistõttu pikkus võib pärast = märgi eemaldamist veidi muutuda).
Kasuta code_challenge autoriseerimistaotlustes: Autoriseerimistaotluse algatamisel saadetakse code_challenge ühe päringuparameetrina autoriseerimisserverile.
code_verifier kasutamine tokeni päringutes: Kui autoriseerimisserver tagastab autoriseerimiskoodi, kasutab klient seda koodi koos eelnevalt genereeritud code_verifier-ga, et taotleda juurdepääsu tokeni lõpp-punktile. Autoriseerimisserver kontrollib, kas code_challenge ja code_verifier klapivad, tagades, et päringu algatab algne klient.
PKCE generatsioon
Veebipõhised PKCE genereerimise tööriistad:Hüperlingi sisselogimine on nähtav.
C# kood genereeritakse järgmiselt:
Nagu allpool näidatud:
Viide:
Hüperlingi sisselogimine on nähtav.
Hüperlingi sisselogimine on nähtav. |