Para recuperar y decodificar un token JWT en una aplicación lógica, puede seguir estos pasos:
1. Recupere el token JWT: Primero, debe obtener el token JWT. Esto se puede hacer analizando los encabezados de una solicitud entrante. Si el token se envía en el encabezado 'Autorización`, puede extraerlo utilizando una acción' Parse JSON` con un esquema que captura la clave 'Autorización`. Luego, cree una variable para contener solo la parte del token (por ejemplo, después del "portador") [10].
2. Decodifica el token JWT: los tokens JWT están codificados en Base64URL. Puede decodificar la parte de carga útil del token utilizando las funciones `split` y` base64ToString` en aplicaciones lógicas. Divida el token por el "." separador para aislar la carga útil. Luego, agregue "=" para asegurarse de que la longitud sea un múltiplo de 4 para la decodificación de Base64. Las aplicaciones lógicas convertirán implícitamente esto en una cadena Base64, que luego puede decodificar usando `base64ToString` [1] [3].
3. Analice la carga útil decodificada: después de decodificar la carga útil, tendrá una cadena JSON. Use otra acción `Parse JSON` para convertir esta cadena en un objeto JSON con el que pueda trabajar en su aplicación lógica. Puede definir un esquema para este objeto JSON basado en las afirmaciones esperadas en el token JWT [3].
4. Extraiga reclamos: una vez que se analiza el JSON, puede extraer reclamos específicos (como ID de usuario o correo electrónico) y usarlas según sea necesario en el flujo de trabajo de su aplicación lógica.
Este enfoque le permite decodificar y usar tokens JWT directamente dentro de Azure Logic Apps sin necesidad de crear una función Azure o usar servicios externos para decodificar. Sin embargo, si necesita validar el token (verifique su firma), es posible que necesite utilizar un servicio externo o una función Azure con una biblioteca capaz de validación JWT.
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://www.michev.info/blog/post/2140/decode-jwt-access-and-id-tokens-via-powershell
[6] https://superertokens.com/blog/revoking-access-with-a-jwt-glacklist
[7] https://techcommunity.microsoft.com/blog/azuredevcommunityblog/part-4-secure-your-logic-app-using-api-management-8211-validate-jwt-access-restr/36802
[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