Controlar ejecución de un Flow mediante una KEY

IMPORTANTE: Siempre se debe controlar el acceso a nuestros flows cuando éstos pueden ser accesibles desde fuera de nuestro entorno. Existen mecanismos para proteger ataques o ejecuciones no deseadas. Este post simplemente define un pequeño paso extra que podemos añadir a modo de seguridad, que en ningún caso debería ser el único.

Tanto si trabajamos con Power Automate como con Logic Apps, cuando definimos el Trigger como llamada HTTP (“When a HTTP request is received”), esta dirección URL será pública y, aunque no sea una URL accesible fácilmente existe la posibilidad de que cualquiera pueda ejecutarlo.

Existen formas de limitar esto, por ejemplo comprobar en el Header que la llamada proviene de otro de nuestros flows o limitar el acceso al recurso a otro de nuestros recursos como puede ser una Azure Function (en el caso de las Logic Apps).

En este caso utilizaremos un método muy simple que puede también ser usado con otros mecanismos como los mencionados anteriormente: Obligar a la llamada a incluir un parámetro en el body con una KEY generada por nosotros. Los pasos son los siguientes:

  1. En el Schema del trigger debemos añadir la KEY como parametro a recibir.
"key": {
     "type": "string"
}

2. Definimos una variable global donde definimos el valor de la KEY.

3. Añadimos una condición para comprobar que la KEY que recibimos es igual a la que esperamos (que la del punto 1 es igual a la del punto 2).

4. De no ser así, terminamos el flow con una respuesta de 401 Unauthorized.

No Responses

Leave a Reply

Your email address will not be published.