Για να ανακτήσετε και να αποκωδικοποιήσετε ένα συμβόλαιο JWT σε μια εφαρμογή λογικής, μπορείτε να ακολουθήσετε αυτά τα βήματα:
1. Ανακτήστε το JWT Token: Πρώτον, πρέπει να αποκτήσετε το JWT Token. Αυτό μπορεί να γίνει με την ανάλυση των κεφαλίδων ενός εισερχόμενου αιτήματος. Εάν το διακριτικό αποστέλλεται στην κεφαλίδα «εξουσιοδότηση», μπορείτε να το εξαγάγετε χρησιμοποιώντας μια δράση `parse json» με ένα σχήμα που καταγράφει το κλειδί `εξουσιοδότησης '. Στη συνέχεια, δημιουργήστε μια μεταβλητή για να κρατήσετε μόνο το τμήμα συμβόλων (π.χ. μετά τον "κομιστή") [10].
2. Αποκάλυψη του Tokens JWT: Τα Tokens JWT είναι κωδικοποιημένα με βάση το 64URL. Μπορείτε να αποκωδικοποιήσετε το τμήμα ωφέλιμου φορτίου του διακριτικού χρησιμοποιώντας τις λειτουργίες `split 'και` base64toString' σε εφαρμογές λογικής. Διαχωρίστε το διακριτικό από το "." Διαχωριστή για την απομόνωση του ωφέλιμου φορτίου. Στη συνέχεια, προσαρμόζετε "=" για να διασφαλίσετε ότι το μήκος είναι ένα πολλαπλάσιο των 4 για την αποκωδικοποίηση Base64. Οι εφαρμογές λογικής θα το μετατρέψουν σιωπηρά σε μια συμβολοσειρά base64, την οποία μπορείτε στη συνέχεια να αποκωδικοποιήσετε χρησιμοποιώντας το `base64toString` [1] [3].
3. Αναλύστε το αποκωδικοποιημένο ωφέλιμο φορτίο: Μετά την αποκωδικοποίηση του ωφέλιμου φορτίου, θα έχετε μια συμβολοσειρά JSON. Χρησιμοποιήστε μια άλλη ενέργεια `parse json 'για να μετατρέψετε αυτήν τη συμβολοσειρά σε ένα αντικείμενο JSON με το οποίο μπορείτε να εργαστείτε στην εφαρμογή λογικής σας. Μπορείτε να ορίσετε ένα σχήμα για αυτό το αντικείμενο JSON με βάση τις αναμενόμενες αξιώσεις στο συμβόλαιο JWT [3].
4. Απαιτήσεις εκχύλισης: Μόλις αναλυθεί το JSON, μπορείτε να εξαγάγετε συγκεκριμένες αξιώσεις (όπως αναγνωριστικό χρήστη ή email) και να τις χρησιμοποιήσετε ανάλογα με τις ανάγκες στη ροή εργασίας της εφαρμογής λογικής σας.
Αυτή η προσέγγιση σάς επιτρέπει να αποκωδικοποιήσετε και να χρησιμοποιήσετε τα Tokens JWT απευθείας μέσα σε εφαρμογές Azure Logic χωρίς να χρειάζεται να δημιουργήσετε μια λειτουργία Azure ή να χρησιμοποιήσετε εξωτερικές υπηρεσίες για αποκωδικοποίηση. Ωστόσο, εάν χρειαστεί να επικυρώσετε το διακριτικό (ελέγξτε την υπογραφή του), ίσως χρειαστεί να χρησιμοποιήσετε μια εξωτερική υπηρεσία ή μια λειτουργία Azure με βιβλιοθήκη ικανή για επικύρωση JWT.
Αναφορές:
[1] https://stackoverflow.com/questions/54257879/how-to-decode-a-jwt-token-in-azure-logic-app
[2] https://www.criipto.com/blog/jwt-validation-guide
[3] https://autosysops.com/blog/parse-jwt-tokens-in-azure-logic-apps
[4] https://hasura.io/blog/best-practices-of-using-jwt-with-graphql
[5] https://www.michev.info/blog/post/2140/decode-jwt-access-and-id-tokens-via-powershell
[6] https://supertokens.com/blog/revoking-access-with-a-jwt-blacklist
[7] https://techcommunity.microsoft.com/blog/azuredevcommunityblog/part-4-secure-your-logic-app-using-api-management-8211-validate-jwt-access-vestr/336802
[8] https://docs.azure.cn/en-us/logic-apps/logic-apps-securing-a-logic-app
[9] https://www.mikaelsand.se/2022/06/extracting-values-from-a-jwt-token-in-apim/
[10] https://rakhesh.com/azure/parsing-json-tokens-in-a-logic-app/
[11] https://github.com/auth0/jwt-decode