Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon ¿Cómo puedo decodificar un token JWT en las aplicaciones lógicas?


¿Cómo puedo decodificar un token JWT en las aplicaciones lógicas?


La decodificación de un token JWT en aplicaciones lógicas de Azure se puede lograr sin usar bibliotecas externas como node.js o c#. Aquí hay un enfoque paso a paso:

1. Extraiga el token JWT: Primero, debe extraer el token JWT de la solicitud entrante. Esto se encuentra típicamente en el encabezado 'Autorización' de la solicitud.

2. Divida el token JWT: JWT Tokens están compuestos por tres partes separadas por puntos: encabezado, carga útil y firma. Debe dividir el token por estos puntos para aislar la carga útil, que contiene los detalles del usuario.

3. Decode la carga útil: la carga útil está codificada Base64URL. Puede usar la función `base64ToString` en aplicaciones lógicas para decodificarla. Sin embargo, debe asegurarse de que la cadena Base64 esté correctamente acolchada con "=" para que su longitud sea un múltiplo de 4.

4. PARSE JSON: Una vez decodificada, la carga útil será una cadena JSON. Use la función `json` en las aplicaciones lógicas para analizar esta cadena en un objeto JSON con el que puede trabajar.

Aquí hay un ejemplo simplificado de cómo podría verse esto en las aplicaciones lógicas:

- divida el token JWT: use una expresión como `split (TriggerBody ()? ['Autorización'], '.')` Para dividir el token.
- decodifique la carga útil: append "=" para garantizar el acolchado adecuado y luego use `base64ToString` para decodificarla.
- Parse JSON: use la función `json` para analizar la carga útil decodificada.

Para un enfoque más reutilizable, considere crear una aplicación lógica infantil específicamente para analizar tokens JWT, como se describe en [3]. Esto le permite integrar fácilmente el análisis de JWT en múltiples aplicaciones lógicas.

Si necesita validar el token (verifique su firma), generalmente utilizaría un servicio o biblioteca externa, ya que Logic Apps no admite de manera nativa la validación de JWT. Sin embargo, para simplemente extraer reclamos sin validación, los pasos anteriores son suficientes.

Citas:
[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://techcommunity.microsoft.com/blog/azuredevcommunityblog/part-4-secure-your-logic-app-using-api-management-8211-validate-jwt-access-restr/36802
[6] https://auth0.com/blog/how-to-validate-jwt-dotnet/
[7] https://github.com/auth0/jwt-decode
[8] https://superertokens.com/blog/revoking-access-with-a-jwt-glacklist
[9] https://fususeauth.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/