Creación de un inicio de session definido por el usuario / desarrollador para AWS iOS mediante iOS SDK Cognito Lambda y DynamoDB

Estoy tratando de averiguar si este es el flujo "correcto" / actual / correcto para desarrollar una cnetworkingencial de inicio de session definida por el usuario / desarrollador para iOS usando AWS.

(Estoy migrando de Parse a AWS por lo que solo he estado leyendo AWS por una semana).

  1. Descargue, instale y compile una aplicación de iOS para registrar usuarios (por ejemplo, correo electrónico y contraseña) (esto se hace y la aplicación muestra un UITextField para correo electrónico y contraseña y es accesible en UIViewController)). También iOS SDK a través de Cocoapods está instalado y disponible.
  2. Cree un set de identidades con unauth y roles de authentication que accedan a los diferentes services. Así que, técnicamente, no tendrán acceso a lo que necesitan. Unauth accede a DynamoDB acceso completo y Cognito. Auth agrega en s3 y sns. Esto esta hecho. ¿Se necesita agregar Lambda? (todo configurado en IAM y Cognito).
  3. Use Lambda para crear funciones a las que llamará desde el dispositivo iOS para ver si un usuario se registra en DynamoDB.
  4. Si el usuario está registrado y constring con la llamada de Lambda a DynamoDB, use Cognito para pasar de un rol de unauth a auth.
  5. Ahora el usuario está autenticado y puede get acceso a S3, SNS y otro service.

¿Hay una mejor manera de hacer esto? ¿Es esto seguro? Tome un pequeño problema con los pasos 3 a 5.

Dado que está llamando a la function Lambda desde la aplicación, debe agregar permiso para eso en IAM. Su flujo se ve bien, solo asegúrese de llamar a GetOpenIdTokenForDeveloperIdentity desde su function Lambda. Es posible que desee search references para este proyecto .