Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 1|Antwoord: 0

Het begrijpen van de code_challenge en code_vertifier van PKCE in OIDC

[Link kopiëren]
Geplaatst op19 seconden geleden | | | |
OAuth 2.0 biedt meerdere autorisatiemodi, waarvan de Authorization Code Grant de meest gebruikte en veiligste is. code_challenge is een beveiligingsversterkte functie binnen deze modus, voornamelijk gebruikt voor het PKCE (Proof Key for Code Exchange) mechanisme.

Wat is PKCE?

PKCE (Proof Key for Code Exchange) is een extensie die is ontworpen om de beveiliging van het OAuth 2.0-autorisatiecodepatroon te verbeteren, vooral wanneer deze wordt gebruikt in publieke clients zoals JavaScript-applicaties of mobiele apps die in browsers draaien. PKCE voorkomt dat autorisatiecodes worden onderschept en misbruikt door een extra authenticatiestap toe te voegen aan autorisatieverzoeken.

code_challenge Rol

code_challenge maakt deel uit van het PKCE-mechanisme, gegenereerd en verzonden tijdens de autorisatie-aanvraagfase. Het is gebaseerd op een geheime waarde (genaamd code_verifier), getransformeerd door een hashing-algoritme zoals S256. Het doel van code_challenge is om een validatiebasis te bieden voor latere tokenverzoeken zonder de code_verifier direct bloot te stellen.

Generatie en gebruik van code_challenge en code_verifier

Generatie code_verifier:
code_verifier een willekeurig gegenereerde string met hoge entropie is,Tekenlengte (tussen 43 en 128). De standaardwaarde is 43。

Generatie code_challenge:
Met code_verifier wordt code_challenge gegenereerd via een hashing-algoritme (zoals S256). Voor S256 is code_challenge de Base64 URL-codering van de code_verifier SHA-256 hashwaarde, maar het = opvullende teken uit de codering moet worden verwijderd en de uitvoerlengte moet 43 tekens zijn (aangezien na Base64 URL-codering elke 4 tekens 3 bytes vertegenwoordigt, maar het laatste tekenblok kan minder dan 4 tekens zijn, dus de lengte kan iets variëren na het verwijderen van = tekens).

Gebruik code_challenge bij autorisatieverzoeken:
Bij het starten van een autorisatieverzoek wordt code_challenge als een van de verzoekparameters naar de autorisatieserver gestuurd.

Gebruik code_verifier in tokenverzoeken:
Wanneer de autorisatieserver de autorisatiecode terugstuurt, gebruikt de client deze code samen met de eerder gegenereerde code_verifier om toegang tot het token-eindpunt aan te vragen. De autorisatieserver controleert of de code_challenge en code_verifier overeenkomen, zodat het verzoek wordt geïnitieerd door de oorspronkelijke client.

PKCE-generatie

Online PKCE-generatietools:De hyperlink-login is zichtbaar.

De C#-code wordt als volgt gegenereerd:
Zoals hieronder getoond:



Referentie:

De hyperlink-login is zichtbaar.
De hyperlink-login is zichtbaar.




Vorig:.NET/C# Twee methoden om de geldigheid van de JWT-tokenhandtekening te verifiëren
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com