Αποκωδικοποίηση κεφαλίδας
JSONΜετά την επικόλληση του JWT, το αναλυμένο περιεχόμενο θα εμφανιστεί εδώ.
Επιθεωρήστε μια κεφαλίδα και ωφέλιμο φορτίο JSON Web Token. Αυτό το εργαλείο δεν επικυρώνει τις υπογραφές και η επεξεργασία παραμένει στο πρόγραμμα περιήγησής σας.
Επικολλήστε το JWT παρακάτω για άμεση αποκωδικοποίηση, επιθεώρηση και επαλήθευση.
Αναμονή για εισαγωγή JSON Web Token.
Μετά την επικόλληση του JWT, το αναλυμένο περιεχόμενο θα εμφανιστεί εδώ.
Μετά την επικόλληση του JWT, το αναλυμένο περιεχόμενο θα εμφανιστεί εδώ.
Η Υπογραφή θα εμφανιστεί εδώ μετά την αποκωδικοποίηση.
Εισαγάγετε το μυστικό που θα χρησιμοποιήσετε κατά την έκδοση του JWT. Η επαλήθευση HS256 εκτελείται εγγενώς στο πρόγραμμα περιήγησής σας.
Επεξεργαστείτε την κεφαλίδα και το ωφέλιμο φορτίο JSON και χρησιμοποιήστε την υπογραφή HS256.
Προετοιμαστείτε για τη δημιουργία JWT.
Αυτό το σύνολο διακριτικών είναι κατάλληλο για τοπική δοκιμή και εντοπισμό σφαλμάτων ανάπτυξης.
Το JWT είναι μια μορφή διακριτικού που χρησιμοποιείται συνήθως για σύνδεση, επαλήθευση API και εξουσιοδότηση μεταξύ υπηρεσιών. Αποτελείται από τρεις ενότητες: Κεφαλίδα, ωφέλιμο φορτίο και υπογραφή.
Το περιεχόμενο ωφέλιμου φορτίου μπορεί να αποκωδικοποιηθεί και να διαβαστεί και ευαίσθητες πληροφορίες δεν πρέπει να τοποθετούνται σε αξιώσεις JWT.
Αυτή η σελίδα υποστηρίζει την επαλήθευση και τη δημιουργία υπογραφής HS256, καθιστώντας εύκολο τον έλεγχο εάν το διακριτικό περιβάλλοντος δοκιμής έχει δημιουργηθεί με το ίδιο μυστικό.
Όλη η αποκωδικοποίηση JWT, η κωδικοποίηση και η επαλήθευση υπογραφής γίνονται εγγενώς στο πρόγραμμα περιήγησης.
ΓΝΩΣΤΙΚΗ ΒΑΣΗ JWT SEO
Αν ψάχνετε για "Αποκωδικοποιητής JWT", "Αποκωδικοποιητής JWT", "JSON Web Token Parsing", "JWT Verify" ή "JWT Encoder", συνήθως σημαίνει ότι έχετε ήδη ένα διακριτικό και πρέπει να κατανοήσετε γρήγορα την κεφαλίδα, το ωφέλιμο φορτίο, τον χρόνο λήξης, τον αλγόριθμο υπογραφής και τις αξιώσεις. Αυτή η σελίδα όχι μόνο παρέχει διαδικτυακά εργαλεία αποκωδικοποίησης JWT, αλλά οργανώνει επίσης τις βασικές γνώσεις του JWT για τις οποίες οι προγραμματιστές ρωτούν συχνά.
Το JWT είναι η συντομογραφία του JSON Web Token. Είναι μια μορφή διακριτικού που χρησιμοποιεί JSON για να αναπαραστήσει πληροφορίες και στη συνέχεια τις μετατρέπει σε μια απλοποιημένη συμβολοσειρά. Χρησιμοποιείται συχνά σε ιστότοπους διαχωρισμού front-end και back-end, API εφαρμογών, σύνδεση μελών, SSO μεμονωμένης σύνδεσης, εξουσιοδότηση microservice και ανταλλαγή δεδομένων μεταξύ υπηρεσιών.
Η αποκωδικοποίηση JWT δεν απαιτεί κωδικό πρόσβασης, επειδή η κεφαλίδα και το ωφέλιμο φορτίο είναι κωδικοποιημένα μόνο στο Base64URL και όχι κρυπτογραφημένα. Οποιοσδήποτε λαμβάνει το διακριτικό μπορεί να χρησιμοποιήσει τον αποκωδικοποιητή JWT για να δει το περιεχόμενο ωφέλιμου φορτίου, επομένως οι αξιώσεις δεν μπορούν να περιέχουν κωδικούς πρόσβασης, κλειδιά API ή ευαίσθητες προσωπικές πληροφορίες.
Η πιο συνηθισμένη περίπτωση χρήσης είναι η εξουσιοδότηση. Αφού ο χρήστης συνδεθεί επιτυχώς, ο διακομιστής εξουσιοδότησης εκδίδει ένα JWT. Όταν η διεπαφή ή η εφαρμογή καλεί στη συνέχεια το API, το διακριτικό τοποθετείται στην κεφαλίδα εξουσιοδότησης HTTP, όπως Εξουσιοδότηση: Φορέας .
Το JWT χρησιμοποιείται επίσης συνήθως για ανταλλαγή πληροφοριών. Όταν δύο συστήματα χρειάζεται να ανταλλάξουν επαληθεύσιμα δεδομένα, οι υπογραφές επιτρέπουν στο άκρο λήψης να επιβεβαιώσει ότι τα δεδομένα δεν έχουν αλλοιωθεί κατά τη μετάδοση. Το τελικό σημείο JWKS χρησιμοποιείται συνήθως σε μεγάλα συστήματα για την έκθεση δημόσιων κλειδιών, έτσι ώστε διαφορετικές υπηρεσίες να μπορούν να επαληθεύσουν την προέλευση του διακριτικού.
Ένα τυπικό JWT αποτελείται συνήθως από τρεις συμβολοσειρές Base64URL διαχωρισμένες με τελείες: Header.Payload.Signature. Η πρώτη ενότητα της κεφαλίδας περιγράφει τον τύπο του διακριτικού και τον αλγόριθμο υπογραφής, η δεύτερη ενότητα του ωφέλιμου φορτίου περιέχει αξιώσεις και η τρίτη ενότητα της υπογραφής χρησιμοποιείται για την επαλήθευση της ακεραιότητας.
Οι συνήθεις εγγεγραμμένες αξιώσεις περιλαμβάνουν iss, sub, aud, ex.code data-i18n="auto.011">nbf, iat και jti. Η καλή επικύρωση API συνήθως ελέγχει τουλάχιστον τα exp, iss και aud.
Η τυπική διαδικασία είναι: ο χρήστης συνδέεται, εξουσιοδοτεί τον διακομιστή να επαληθεύσει τον κωδικό πρόσβασης του λογαριασμού ή το αποτέλεσμα σύνδεσης τρίτου μέρους και, στη συνέχεια, εκδίδει ένα διακριτικό πρόσβασης. το front-end επισυνάπτει το διακριτικό πρόσβασης στο αίτημα API. το back-end API επαληθεύει το διακριτικό και επιστρέφει προστατευμένα δεδομένα.
Το JWT δεν είναι μια καθολική αντικατάσταση συνεδρίας. Μόλις εκδοθεί ένα διακριτικό, μπορεί συνήθως να επαληθευτεί χωρίς έλεγχο της βάσης δεδομένων πριν από τη λήξη. Ωστόσο, η ανάκληση διακριτικού, οι άμεσες αλλαγές αδειών και η επεξεργασία αποσύνδεσης πρέπει ακόμη να σχεδιαστούν.
Η επικύρωση JWT συνήθως αναφέρεται στον έλεγχο του αν το διακριτικό πληροί τους αναμενόμενους κανόνες, όπως εάν έχει τρία τμήματα, αν μπορεί να αποκωδικοποιηθεί, εάν το JSON είναι νόμιμο, εάν έχει λήξει, εάν ο εκδότης είναι σωστός και εάν το κοινό συμμορφώνεται με το τρέχον API.
Η επαλήθευση JWT θα χρησιμοποιήσει τον καθορισμένο αλγόριθμο και το κλειδί για να υπολογίσει εκ νέου την υπογραφή και στη συνέχεια να τη συγκρίνει με την τρίτη υπογραφή του διακριτικού. Η κατανόηση του ωφέλιμου φορτίου δεν σημαίνει ότι το διακριτικό είναι αξιόπιστο. το επίσημο API πρέπει να υποβληθεί σε επαλήθευση σφραγίδας και επαλήθευση αξιώσεων.
Το JWT Decode μετατρέπει την πρώτη και τη δεύτερη παράγραφο του διακριτικού πίσω σε JSON, επιτρέποντάς σας να διαβάσετε την κεφαλίδα και το ωφέλιμο φορτίο. Το JWT Encode είναι η αντίστροφη διαδικασία: προετοιμάστε τα Header JSON και Payload JSON, δημιουργήστε Signature και, τέλος, συνδυάστε τα σε ένα πλήρες διακριτικό.
Εάν θέλετε απλώς να δείτε το περιεχόμενο ωφέλιμου φορτίου, δεν χρειάζεστε μυστικό. Εάν θέλετε να επιβεβαιώσετε εάν το διακριτικό έχει εκδοθεί πραγματικά από το σύστημά σας, πρέπει να χρησιμοποιήσετε το σωστό μυστικό ή δημόσιο κλειδί για να επαληθεύσετε την Υπογραφή. Αυτή τη στιγμή αυτή η σελίδα υποστηρίζει HS256.
Όταν χρησιμοποιείτε την ηλεκτρονική αποκωδικοποίηση JWT, θα πρέπει επίσης να ελέγξετε ποιος εξέδωσε το διακριτικό, σε ποιο σύστημα εκδόθηκε, πότε τίθεται σε ισχύ, πότε λήγει και αν το εύρος της άδειας πληροί τις απαιτήσεις API. Ο παρακάτω πίνακας συνοψίζει τους κοινούς ισχυρισμούς JWT.
| Αξίωση | Κινεζική έννοια | Τι πρέπει να ελέγξετε κατά τον εντοπισμό σφαλμάτων |
|---|---|---|
iss | Εκδότης, εκδότης | Είτε πρόκειται για διακομιστή εξουσιοδότησης είτε για αξιόπιστο πάροχο ταυτότητας. |
υπο | Αντικείμενο, χρήστη ή κύριο αναγνωριστικό | Είτε αντιστοιχεί στον σωστό χρήστη, μέλος, λογαριασμό υπηρεσίας ή συσκευή. |
aud | Κοινό, συμβολικό κοινό | Εάν θα το στείλετε στο τρέχον API. Τα σφάλματα κοινού προκαλούν συχνά το 401. |
exp | Χρόνος λήξης, χρόνος λήξης | Αν έχει λήξει? Σημειώστε τη διαφορά στη χρονοσφραγίδα Unix και στην εμφάνιση ζώνης ώρας. |
nbf | Όχι πριν, αποτελεσματικός χρόνος | Εάν δεν έχει φτάσει ακόμη ο ωφέλιμος χρόνος. Η απόκλιση του χρόνου διακομιστή θα το επηρεάσει επίσης. |
iat | Εκδόθηκε στις, ώρα έκδοσης | Ταιριάζει με τον πραγματικό χρόνο σύνδεσης ή το διακριτικό ανανέωσης; |
jti | JWT ID, μοναδικό αναγνωριστικό διακριτικού | Είτε μπορεί να χρησιμοποιηθεί για λίστες ανάκλησης, αρχεία καταγραφής ελέγχου ή προστασία από επίθεση επανάληψης. |
πεδίο εφαρμογής | Πεδίο εξουσιοδότησης | Εάν υπάρχουν τα δικαιώματα ανάγνωσης, εγγραφής, διαχείρισης και άλλα δικαιώματα που απαιτούνται από το API. |
Το alg στο JWT Header θα πει στον επαληθευτή ποιος αλγόριθμος πρέπει να χρησιμοποιηθεί. Το HS256 είναι HMAC SHA-256 και τόσο η έκδοση όσο και η επαλήθευση χρησιμοποιούν το ίδιο σύνολο μυστικών. Το RS256 χρησιμοποιεί υπογραφή ιδιωτικού κλειδιού RSA και επαλήθευση δημόσιου κλειδιού. Το ES256 χρησιμοποιεί αλγόριθμο ελλειπτικής καμπύλης.
Το backend θα πρέπει να προσδιορίζει με σαφήνεια τη λίστα των επιτρεπόμενων αλγορίθμων για να αποτρέψει τους εισβολείς από το να επηρεάσουν τη διαδικασία επαλήθευσης τροποποιώντας την κεφαλίδα. Εάν το JWT προέρχεται από πάροχο ταυτότητας, λάβετε συνήθως το JWKS ή το δημόσιο κλειδί και επιλέξτε παιδί, iss, aud , data-i18n="auto.010">exp.
Τα πιο συνηθισμένα προβλήματα που αντιμετωπίζονται κατά τη χρήση του αποκωδικοποιητή JWT είναι ότι το διακριτικό δεν είναι σε τυπική μορφή τριών τμημάτων, η συμβολοσειρά Base64URL αντιγράφεται ελλιπώς, υπάρχουν κενά πριν και μετά, το ωφέλιμο φορτίο δεν είναι νόμιμο JSON ή το μυστικό υπογραφής χρησιμοποιείται εσφαλμένα. Εάν το API επιστρέψει το 401 ή το 403, συνιστάται να αποκωδικοποιήσετε πρώτα το JWT και να επιβεβαιώσετε τα exp, aud και auto.05">
header.payload.signature.Φορέας.exp έχει λήξει και εάν η ώρα του διακομιστή είναι συγχρονισμένη.iss και το aud συνάδουν με το τρέχον περιβάλλον.παιδί.Το Session συνήθως αποθηκεύει την κατάσταση στον διακομιστή ή στην κεντρική αποθήκευση και το πρόγραμμα περιήγησης αποθηκεύει μόνο το αναγνωριστικό περιόδου λειτουργίας. Το JWT τοποθετεί μέρος της κατάστασης στο διακριτικό, έτσι ώστε το API να μπορεί να χρησιμοποιήσει την υπογραφή για να επαληθεύσει την ακεραιότητα. Το SAML βασίζεται σε XML και χρησιμοποιείται συνήθως στον SSO των επιχειρήσεων.
| Σχέδιο | Κατάλληλο για την κατάσταση | Πράγματα που πρέπει να σημειωθούν |
|---|---|---|
| JWT | Εξουσιοδότηση API, διακριτικό πρόσβασης SSO, μικροϋπηρεσίες | Είναι απαραίτητος ο έλεγχος του χρόνου λήξης, η επαλήθευση σφραγίδας, η ανάκληση και η διαρροή ευαίσθητων πληροφοριών. |
| Συνεδρία | Παραδοσιακοί ιστότοποι που απαιτούν άμεση αποσύνδεση ή κεντρικό έλεγχο κατάστασης | Απαιτείται ένα κατάστημα περιόδου λειτουργίας από την πλευρά του διακομιστή και η επέκταση μεταξύ υπηρεσιών απαιτεί πρόσθετο σχεδιασμό. |
| SAML | Ενοποίηση εταιρικής ταυτότητας, παλαιού τύπου συστήματα SSO | Οι δομές XML είναι μεγαλύτερες και οι υπογραφές και οι ρυθμίσεις είναι συνήθως πιο περίπλοκες. |
exp και μην κάνετε το διακριτικό πρόσβασης να ισχύει για μεγάλο χρονικό διάστημα.alg του Header.iss, aud, nbf, απαραίτητο για αποστολή, smissionsΑυτό το διαδικτυακό εργαλείο αποκωδικοποίησης JWT χρησιμοποιεί εγγενή επεξεργασία του προγράμματος περιήγησης: το διακριτικό, το μυστικό, το Header JSON και το Payload JSON που επικολλάτε δεν θα μεταφορτωθούν στον διακομιστή ToolBoy. Παρόλα αυτά, η αρχή της ελάχιστης αποκάλυψης θα πρέπει να εξακολουθεί να τηρείται όταν πρόκειται για πραγματικές μάρκες παραγωγής.
Το JWT εμφανίζεται συχνά στη διαδικασία εντοπισμού σφαλμάτων API μαζί με JSON, Base64URL, ερώτημα URL, χρονική σήμανση, SHA-256, UUID, regex και άλλες μορφές δεδομένων. Μπορείτε να χρησιμοποιήσετε το εργαλείο μορφοποίησης JSON, Κωδικοποίηση και αποκωδικοποίηση Base64, Μετατροπή Unix Timestamp ή Γεννήτρια UUID.
Για περαιτέρω ανάγνωση, ανατρέξτε στην Εισαγωγή JSON Web Token του jwt.io και RFC 7519. Το περιεχόμενο αυτής της σελίδας έχει αναδιοργανωθεί και ξαναγραφτεί στα κινέζικα, εστιάζοντας στην πρακτική διόρθωση σφαλμάτων, το SEO με λευκό καπέλο και το εγγενές απόρρητο.