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.

¿Cómo puedo agregar metadatos de la aplicación cliente en AWS Cognito?

Soy completamente nuevo en AWS Cognito, pero nuestro objetivo es crear un punto de conexión de API GW para que los inquilinos puedan cargar sus datos en un bucket de S3 con un prefijo de directorio de inquilino de forma segura (cada inquilino tiene una carpeta separada). El inicio de sesión de nombre de usuario y contraseña proporcionado por el userpool de Cognito no es la forma en que debes considerar en caso de comunicación entre máquinas.

Según tengo entendido, AWS Cognito es una forma segura de generar un cliente de aplicación con un ID de cliente y un secreto que podemos proporcionar a nuestros clientes y asegurar nuestro punto de conexión. Necesitamos agregar metadatos de tenant_id o nombre a ese cliente para saber en qué directorio debemos poner sus datos. El problema es que el cliente no es parte del userpool en sí y no podemos agregar ningún dato a él en Cognito.

¿Podemos usar el propio ID de cliente? ¿Deberíamos manejar esta relación entre metadatos y ID de cliente por nosotros mismos? (almacenar en una base de datos)
¿O es este el enfoque más limpio para lograr esto?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Como experto en tecnología de la información especializado en Amazon Web Services, Amazon S3 y Amazon Cognito, sugeriría el siguiente enfoque para lograr el objetivo de crear un punto de entrada de API Gateway para que los inquilinos puedan cargar sus datos en un cubo de S3 con un prefijo de directorio de inquilino de manera segura:

    1. Crear un Grupo de usuarios en Amazon Cognito para que los inquilinos puedan autenticarse. Este Grupo de usuarios se utilizará para generar Tokens de acceso para los inquilinos que se utilizarán para llamar al punto de entrada de API Gateway.
    2. Crear un cliente de aplicación en el Grupo de usuarios para cada inquilino. Cada cliente de aplicación estará asociado con un directorio de cubo de S3 diferente utilizando metadatos.

    3. Utilizar el ID de cliente de la aplicación como metadato para identificar el directorio de cubo de S3 asociado a ese cliente de aplicación.

    4. Para almacenar la relación metadato-ID de cliente, utilizar una base de datos. Cada vez que se crea un cliente de aplicación, almacenar su ID de cliente y el directorio de cubo de S3 asociado en la base de datos.

    5. Cada vez que API Gateway reciba una solicitud de un cliente de aplicación, deberá verificar el Token de acceso del inquilino frente al Grupo de usuarios y extraer el ID de cliente de este. Luego, deberá recuperar el directorio de cubo de S3 asociado desde la base de datos y utilizarlo para cargar los datos en el directorio correcto.

    Siguiendo este enfoque, podemos asegurarnos de que los datos de cada inquilino se carguen en el directorio correcto del cubo de S3 y de que cada inquilino se autentique utilizando el Grupo de usuarios de Amazon Cognito. Este enfoque también nos permite escalar la solución para múltiples inquilinos creando múltiples clientes de aplicación y asociando cada uno con un directorio de cubo de S3 diferente utilizando metadatos.

Comments are closed.