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/