hefestoapicontainer

Seguridad

Apis públicas y privadas

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.

Chequeo de apiKeys

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.

Oauth, jwt y otros mecanismos de securización

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.

Ir a la home