Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Come posso decodificare un token JWT nelle app logiche


Come posso decodificare un token JWT nelle app logiche


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/