Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 1|Odgovoriti: 0

Razumevanje code_challenge in code_vertifier PKCE v OIDC

[Kopiraj povezavo]
Objavljeno naPred 19 sekundami | | | |
OAuth 2.0 ponuja več načinov avtorizacije, med katerimi je Authorization Code Grant najpogosteje uporabljen in varen. code_challenge je varnostno izboljšana funkcija v tem načinu, ki se večinoma uporablja za mehanizem PKCE (Proof Key for Code Exchange).

Kaj je PKCE?

PKCE (Proof Key for Code Exchange) je razširitev, zasnovana za izboljšanje varnosti vzorca avtorizacijske kode OAuth 2.0, še posebej, kadar se uporablja v javnih odjemalcih, kot so JavaScript aplikacije ali mobilne aplikacije, ki tečejo v brskalnikih. PKCE preprečuje prestrezanje in zlorabo avtorizacijskih kod z dodajanjem dodatnega koraka za avtentikacijo k zahtevam za avtorizacijo.

code_challenge vloga

code_challenge je del mehanizma PKCE, ki se generira in pošilja med fazo zahteve za avtorizacijo. Temelji na skrivni vrednosti (imenovani code_verifier), ki jo pretvori algoritem za zgoščevanje, kot je S256. Namen code_challenge je zagotoviti validacijsko osnovo za nadaljnje zahteve žetonov, ne da bi neposredno izpostavil code_verifier.

Generiranje in uporaba code_challenge in code_verifier

Generacija code_verifier:
code_verifier je struna z visoko entropijo, naključno generirana,Dolžina znaka (med 43 in 128). Privzeta vrednost je 43。

Generacija code_challenge:
Z uporabo code_verifier se code_challenge generira z algoritmom za zgoščevanje (kot je S256). Za S256 je code_challenge Base64 URL kodiranje vrednosti code_verifier SHA-256, vendar je treba odstraniti = zapolnjevalni znak iz kodiranja, izhodna dolžina pa mora biti 43 znakov (saj po kodiranju URL-jev v Base64 vsakih 4 znaki predstavljajo 3 bajte, vendar je zadnji blok znakov lahko manjši od 4 znakov, zato se dolžina lahko po odstranitvi = znakov rahlo razlikuje).

Uporabite code_challenge pri zahtevah za avtorizacijo:
Ob začetku zahteve za avtorizacijo se code_challenge pošlje kot eden od parametrov zahteve strežniku za avtorizacijo.

Uporaba code_verifier pri zahtevkih za žetone:
Ko strežnik za avtorizacijo vrne avtorizacijsko kodo, odjemalec uporabi to kodo skupaj s prej generirano code_verifier za zahtevo dostopa do končne točke žetona. Strežnik za avtorizacijo preveri, ali se code_challenge in code_verifier ujemata, s čimer zagotovi, da zahtevo sproži originalni odjemalec.

Generiranje PKCE

Spletna orodja za generiranje PKCE:Prijava do hiperpovezave je vidna.

C# koda se generira na naslednji način:
Kot je prikazano spodaj:



Referenčni:

Prijava do hiperpovezave je vidna.
Prijava do hiperpovezave je vidna.




Prejšnji:.NET/C# Dve metodi za preverjanje veljavnosti podpisa žetona JWT
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com