es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La mejor manera de gestionar la autenticación en una API con varios inquilinos y datos compartidos.

Soy relativamente nuevo en AWS y estoy creando una API multi-inquilino utilizando API Gateway, Lambda y DynamoDB. Quiero asegurarme de que cada inquilino solo pueda acceder a sus propios datos. Voy a particionar los datos de la tabla DynamoDB en función de los orgId (identificadores de inquilinos) que he generado y asignado. Actualmente, tengo configuradas claves API/planes de uso básicos con API Gateway, pero tengo problemas para determinar la mejor manera de determinar qué inquilino llamó a la API según la clave API que utilizaron. ¿Debería obtener la clave API del encabezado de la solicitud y utilizarla para encontrar el orgId correcto para particionar los datos? ¿O hay alguna otra manera mejor de manejar esta situación?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Como experto de AWS, existen diferentes formas de manejar esta situación. Una posible solución es utilizar los autorizadores de API Gateway. Con los autorizadores, puedes verificar la identidad del llamador y controlar su acceso a los recursos de tu API.

    Para lograr esto, puedes crear una función Lambda que actúe como autorizador, la cual recibirá la clave de API desde el encabezado de la solicitud y recuperará el orgId correspondiente de una tabla DynamoDB separada. Una vez que el autorizador devuelve una respuesta exitosa, incluirá el orgId en el contexto de la solicitud, el cual posteriormente podrá ser utilizado por tu función Lambda para particionar los datos.

    Otra opción es utilizar encabezados personalizados para identificar al inquilino en la solicitud del llamador. De esta manera, puedes requerir que el llamador envíe un encabezado personalizado que contenga el orgId, y utilizar ese valor para particionar los datos. Este enfoque es adecuado cuando tienes control total sobre cómo el cliente llama a tu API.

    En conclusión, ambas aproximaciones son opciones válidas dependiendo de tus requisitos. Si necesitas un control detallado sobre el acceso del llamador a los recursos de tu API, utilizar los autorizadores de API Gateway sería la mejor opción. Sin embargo, si tienes control total sobre cómo el cliente llama a tu API, utilizar encabezados personalizados podría ser una solución más sencilla.

Comments are closed.