Todas las apis que publicas en Hefesto, por defecto, sólo son accesibles con una contraseña que sólo conoces tú (apis privadas), aunque puedes habilitarlas para que sean accesibles por cualquiera (apis públicas). Esto está explicado con más detalle en las secciones de apis públicas y privadas.
En apis productivas, además, puedes usar los siguientes comandos para habilitar/deshabilitar la contraseña que te permite acceder a las apis privadas desde fuera:
cd hefesto-server/scripts ./admin-open.sh #Para que se pueda acceder con contraseña desde fuera ./admin-close.sh #Para que NO se pueda acceder con contraseña desde fuera
Las apis privadas, siempre están disponibles en caso de que la llamada sea local, puedes profundizar más leyendo la sección de conexiones locales.
Puedes proteger las APIs públicas con una contraseña mediante la directiva CheckKey, a continuación se muestra un ejemplo:
get /user: CheckKey: directive: CheckKey expected: $.map.main.viewKey current: $.message.queryParam.api-key ReadUser: directive: Pull host: https://mymicroservice.com path: /ms/user target: user
Lo que hace la directiva CheckKey es comparar la key correcta (expected) con la key que envía el cliente (current). En caso de que no coincidan, CheckKey eleva una excepción e interrumple el resto del flujo. En este ejemplo, CheckKey, está utilizando maps, memory y message, pero se podría implementar pasando valores hardcodeados, o de cualquier otra manera.
En este momento, Hefesto sólo provee la directiva CheckKey, pero recuerda que puedes desarrollar tus propias directivas y que puedes hacer llamadas http, escrituras/lecturas en base de datos y redis, por lo que podrías implementar tus propios mecanismos de seguridad.