Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 1|Απάντηση: 0

Κατανόηση της code_challenge και code_vertifier του PKCE στο OIDC

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις19 δευτερόλεπτα πριν | | | |
Το OAuth 2.0 προσφέρει πολλαπλές λειτουργίες εξουσιοδότησης, μεταξύ των οποίων η Εκχώρηση Κωδικού Εξουσιοδότησης είναι η πιο συχνά χρησιμοποιούμενη και ασφαλής. code_challenge είναι μια δυνατότητα ενισχυμένης ασφάλειας σε αυτήν τη λειτουργία, που χρησιμοποιείται κυρίως για τον μηχανισμό PKCE (Proof Key for Code Exchange).

Τι είναι το PKCE;

Το PKCE (Proof Key for Code Exchange) είναι μια επέκταση που έχει σχεδιαστεί για να βελτιώνει την ασφάλεια του μοτίβου κωδικού εξουσιοδότησης OAuth 2.0, ειδικά όταν χρησιμοποιείται σε δημόσιους πελάτες, όπως εφαρμογές JavaScript ή εφαρμογές για κινητά που εκτελούνται σε προγράμματα περιήγησης. Το PKCE αποτρέπει την υποκλοπή και την κακή χρήση κωδικών εξουσιοδότησης προσθέτοντας ένα επιπλέον βήμα ελέγχου ταυτότητας στα αιτήματα εξουσιοδότησης.

code_challenge Ρόλος

code_challenge αποτελεί μέρος του μηχανισμού PKCE, που δημιουργείται και αποστέλλεται κατά τη φάση του αιτήματος εξουσιοδότησης. Βασίζεται σε μια μυστική τιμή (που ονομάζεται code_verifier), η οποία μετασχηματίζεται από έναν αλγόριθμο κατακερματισμού όπως ο S256. Ο σκοπός του code_challenge είναι να παρέχει μια βάση επικύρωσης για επόμενα αιτήματα διακριτικών χωρίς να εκθέτει άμεσα το code_verifier.

Παραγωγή και χρήση code_challenge και code_verifier

Γενιά code_verifier:
code_verifier είναι μια συμβολοσειρά υψηλής εντροπίας, που δημιουργείται τυχαία,Μήκος χαρακτήρων (μεταξύ 43 και 128). Η προεπιλεγμένη τιμή είναι 43。

Γενιά code_challenge:
Χρησιμοποιώντας code_verifier, code_challenge δημιουργείται μέσω ενός αλγόριθμου κατακερματισμού (όπως το S256). Για το S256, code_challenge είναι η κωδικοποίηση URL Base64 της τιμής κατακερματισμού code_verifier SHA-256, αλλά ο χαρακτήρας πλήρωσης = από την κωδικοποίηση πρέπει να αφαιρεθεί και το μήκος εξόδου πρέπει να είναι 43 χαρακτήρες (καθώς μετά την κωδικοποίηση URL Base64, κάθε 4 χαρακτήρες αντιπροσωπεύει 3 byte, αλλά το τελευταίο μπλοκ χαρακτήρων μπορεί να είναι μικρότερο από 4 χαρακτήρες, επομένως το μήκος μπορεί να διαφέρει ελαφρώς μετά την αφαίρεση = χαρακτήρες).

Χρησιμοποιήστε code_challenge σε αιτήματα εξουσιοδότησης:
Κατά την εκκίνηση μιας αίτησης εξουσιοδότησης, code_challenge αποστέλλεται ως μία από τις παραμέτρους της αίτησης στο διακομιστή εξουσιοδοτήσεων.

Χρήση code_verifier σε αιτήματα διακριτικών:
Όταν ο διακομιστής εξουσιοδοτήσεων επιστρέφει τον κωδικό εξουσιοδότησης, ο υπολογιστής-πελάτης χρησιμοποιεί αυτόν τον κωδικό μαζί με το code_verifier που δημιουργήθηκε προηγουμένως για να ζητήσει πρόσβαση στο τελικό σημείο διακριτικού. Ο διακομιστής εξουσιοδοτήσεων επαληθεύει εάν το code_challenge και το code_verifier ταιριάζουν, διασφαλίζοντας ότι το αίτημα εκκινείται από τον αρχικό υπολογιστή-πελάτη.

Γενιά PKCE

Διαδικτυακά εργαλεία δημιουργίας PKCE:Η σύνδεση με υπερσύνδεσμο είναι ορατή.

Ο κωδικός C# δημιουργείται ως εξής:
Οπως φαίνεται παρακάτω:



Αναφορά:

Η σύνδεση με υπερσύνδεσμο είναι ορατή.
Η σύνδεση με υπερσύνδεσμο είναι ορατή.




Προηγούμενος:.NET/C# Δύο μέθοδοι για την επαλήθευση της εγκυρότητας της υπογραφής διακριτικού JWT
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com