AWS cognito: inicie sesión con usuario / contraseña O facebook

Quiero integrar una funcionalidad bastante estándar: dar opción al usuario (móvil y web) para iniciar sesión con correo electrónico / contraseña o con una cuenta de Facebook (Google) con RBAC (diferentes usuarios pueden tener diferentes roles, como usuarios, moderadores, administradores, creadores , etc.) Esto es básicamente lo que quiero de iniciar sesión:

Revisé varios tutoriales de AWS y otros materiales. Comprendí cómo implementarlo, pero todavía no tengo una imagen completa. Espero que alguien pueda ayudarme aquí.

Aquí está mi comprensión actual (corrígeme donde estoy equivocado).

1) Para el registro / inicio de sesión de correo electrónico / contraseña, uso un grupo de usuarios. Cuando el usuario inicia sesión, llamo authenticateUser (estoy usando JS SDK):

cognitoUser.authenticateUser(authenticationDetails, {
..
})

donde onSuccess

Almaceno identidades, accedo y actualizo tokens, por lo que el usuario no tiene que ingresar sus credenciales cada vezDebido a que los usuarios accederán a los servicios de AWS (por ejemplo, S3), cambio idToken por las credenciales de AWSAlmacene los créditos de AWS en LocalStore para su uso posterior, cuando acceda a los recursos

2) Para el inicio de sesión en Facebook, uso identidad federada

obtener un token de acceso a Facebookcon token fb obtener una identidad cognitointercambiar una identidad cognitiva con los créditos de AWS y almacenarlos en LocalStorePreguntas:

Q1. ¿Es una lógica válida y bastante completa para registrarse / registrarse? ¿Yo me perdí algo?

Q2 ¿Cómo debo almacenar los usuarios de Facebook? ¿Puedo hacerlo en grupos de usuarios? Tengo la impresión de que no es posible, pero eso significa que tengo 2 directorios de usuarios diferentes: uno en UserPool y otro en otro lugar (digamos en DynamoDB)

Q3. Si tengo que almacenar usuarios en diferentes lugares (UserPool y DynamoDB), eso significa que tengo 2 usuarios para esencialmente un usuario, que primero se registró con correo electrónico / contraseña y luego decidió usar Facebook; esto es un inconveniente tanto para mí como administrador de aplicaciones y usuario . ¿Cómo lidiar con esta situación?

Q4. ¿Cómo administrar grupos para usuarios que se registraron con token de Facebook (como usuarios, moderadores, administradores, creadores, etc.)?

Q5. ¿Cómo debo restringir el acceso a recursos que no sean AWS para los usuarios registrados en Facebook?

Q6. ¿Algún ejemplo de trabajo para esto?

¡Gracias!

Respuestas a la pregunta(2)

Su respuesta a la pregunta