Seguridad de nivel de servicio

Hasura permite determinar el acceso según el nivel de servicio. Existen varias configuraciones que pueden realizarse para asegurar el acceso a los datos en las distintas capas. A continuación, vamos a analizar cada una de ellas.

Configurar un secreto API

Quizás haya configurado ya un admin secret para asegurar la API de GraphQL desde el principio. Esto vendría seguido de un sistema de permisos basado en roles para el acceso a los datos. Pero si utiliza código personalizado a través de Actions, Remote Schemas y Events, entonces necesitará una forma de poder restringir ese código personalizado para que Hasura, y solo Hasura, pueda invocarlo.

Esto requiere de confianza entre el servidor Hasura y el servidor de código personalizado. Esta confianza se establece mediante un secreto API compartido.

Al crear una acción/esquema remoto/evento, puede agregar encabezados personalizados como el que sigue:

Secreto compartido mediante encabezados

Establecer directivas CORS

Hasura permite por defecto todas las solicitudes CORS. En escenarios de producción, tal vez quiera restringir las consultas a unos pocos dominios escogidos.

Por ejemplo, si su aplicación está alojada en un dominio, digamos https://example.com, puede permitir que cualquier petición provenga de ahí y de cualquiera de sus subdominios al habilitar la configuración HASURA_GRAPHQL_CORS_DOMAIN="http://*.example.com".

Dominio Cors

Por supuesto, esta restricción solo se aplica del lado del cliente (navegador). En cualquier caso, dado que la API es de acceso público, estas directivas solo son útiles a la hora de restringir las peticiones realizadas desde el navegador. Esto sigue sin impedir que alguien haga peticiones del lado del servidor o de las aplicaciones móviles, por ejemplo, y no debería utilizarse como medio de restricción en esos casos.

SSL y HTTPS

Los proyectos Hasura Cloud vienen con SSL gratuito para todas las aplicaciones, incluidos los dominios personalizados y, por lo tanto, las API son accesibles a través de las consultas regulares https y wss para las consultas de suscripción en tiempo real.

Tenga en cuenta que wss puede utilizarse para realizar todas las peticiones. (No solo suscripciones, sino que también funcionaría con consultas y mutaciones).

Gestionar a los miembros del equipo y sus niveles de acceso

En Hasura Cloud, puede compartirse el acceso a la consola con los diferentes miembros del equipo con acceso restringido. Esto puede hacerse añadiendo colaboradores en la página de configuración del proyecto, tal y como se indica a continuación:

Consola del equipo

Existen dos niveles de acceso al proyecto Hasura Cloud:

  • admin dispone de acceso para realizar llamadas a la API, consultar las métricas y configurar reglas sin ningún tipo de límite.
  • user tiene acceso limitado dependiendo de si ha sido provisto de permisos para ejecutar GraphQL y consultar las métricas.
Did you find this page helpful?
Start with GraphQL on Hasura for Free
  • ArrowBuild apps and APIs 10x faster
  • ArrowBuilt-in authorization and caching
  • Arrow8x more performant than hand-rolled APIs
Promo
footer illustration
Brand logo
© 2024 Hasura Inc. All rights reserved
Github
Titter
Discord
Facebook
Instagram
Youtube
Linkedin