La decodifica di un token JWT nelle app di logica di Azure può essere ottenuta senza utilizzare librerie esterne come node.js o c#. Here's a step-by-step approach:
1. Estrai il token JWT: in primo luogo, è necessario estrarre il token JWT dalla richiesta in arrivo. Questo si trova in genere nell'intestazione `autorizzazione 'della richiesta.
2. Dividere il token JWT: i token JWT sono composti da tre parti separate da punti: intestazione, carico utile e firma. È necessario dividere il token di questi punti per isolare il payload, che contiene i dettagli dell'utente.
3. Decodifica il payload: il payload è codificato da base64url. È possibile utilizzare la funzione `Base64ToString` nelle app logiche per decodificarla. Tuttavia, è necessario assicurarsi che la stringa Base64 sia correttamente imbottita con "=" per rendere la sua lunghezza un multiplo di 4.
4. Analizza JSON: una volta decodificato, il payload sarà una stringa JSON. Usa la funzione `JSON` nelle app logiche per analizzare questa stringa in un oggetto JSON con cui puoi lavorare.
Ecco un esempio semplificato di come questo potrebbe apparire nelle app logiche:
- Dividi il token JWT: usa un'espressione come `split (triggerbody ()? ['Autorizzazione'], '.')` Per dividere il token.
- Decodifica il payload: append "=" Per garantire l'imbottitura corretta e quindi utilizzare `Base64ToString` per decodificarlo.
- Analizza JSON: usa la funzione `JSON` per analizzare il payload decodificato.
Per un approccio più riutilizzabile, prendi in considerazione la creazione di un'app logica per bambini specificamente per l'analisi dei token JWT, come descritto in [3]. Ciò consente di integrare facilmente l'analisi JWT in più app logiche.
Se è necessario convalidare il token (controlla la sua firma), in genere si utilizzerebbe un servizio o una libreria esterna, poiché le app logiche non supportano nativamente la convalida JWT. Tuttavia, per semplicemente estrarre i reclami senza convalida, le fasi di cui sopra sono subite.
Citazioni:
[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://techcomunity.microsoft.com/blog/azurevcommunityblog/part-4-secure-your-logic-app-using-api-management-8211-validate-jwt-access-restr/336802
[6] https://auth0.com/blog/how-to-validate-jwt-dotnet/
[7] https://github.com/auth0/jwt-decode
[8] https://supertokens.com/blog/revoking-access-with-a-jwt-blacklist
[9] https://fusionauth.io/dev-tools/jwt-decoder
[10] https://rakhesh.com/azure/parsing-json-tokens-in-a-logic-app/
[11] https://www.reddit.com/r/azure/comments/u4alct/blog_parse_jwt_token_with_azure_logic_apps/