Preguntas frecuentes sobre Amazon Cognito

Aspectos generales

Amazon Cognito le permite agregar el registro de usuarios, el inicio de sesión, el control de acceso y el acceso a los servicios de AWS de intermediación a sus aplicaciones web y móviles en cuestión de minutos. Es un servicio rentable y centrado en el desarrollador que proporciona almacenes de identidades seguros y basados en inquilinos y opciones de federación que pueden ampliarse a millones de usuarios. Amazon Cognito lo ayuda a crear experiencias de marca para los clientes, a mejorar la seguridad y adaptarse a las necesidades de sus clientes. Por ejemplo, admite el inicio de sesión con proveedores de identidad social y el inicio de sesión sin contraseña mediante claves de paso WebAuthn o contraseñas de un solo uso por SMS y correo electrónico. Amazon Cognito admite varios estándares de cumplimiento, funciona con estándares de identidad abiertos y se integra con un amplio catálogo de recursos de desarrollo y bibliotecas de SDK.

Con Amazon Cognito, puede centrarse en crear excelentes experiencias con las aplicaciones en lugar de preocuparse por crear, proteger y escalar una solución para gestionar la autenticación y la administración de usuarios.

Puede empezar fácilmente visitando la consola de AWS. Si no dispone de una cuenta de Amazon Web Services, puede crearla al iniciar sesión en la consola. Una vez que haya creado un grupo de usuarios para la administración de usuarios o un grupo de identidades para identidades federadas, puede integrar su aplicación y sus API con OAuth y OpenID Connect (OIDC).

Consulte nuestros recursos de introducción para obtener más información.

Amazon Cognito está diseñado para desarrolladores que desean añadir la administración de usuarios y la funcionalidad de sincronización a sus aplicaciones web y móviles. Los desarrolladores pueden utilizar Cognito Identity para añadir el registro y el inicio de sesión a sus aplicaciones y permitir que sus usuarios accedan de forma segura a sus recursos. Cognito también permite a los desarrolladores sincronizar datos entre dispositivos, plataformas y aplicaciones.

Sí. Cognito expone API de servidor. Puede crear su propia interfaz personalizada para Cognito llamando directamente a estas API. Las API de servidor se describen en la guía para desarrolladores.

La compatibilidad con Cognito reside en el SDK para móviles de AWS opcional, que está disponible para iOS, Android, Unity y Kindle Fire. Cognito también está disponible en el AWS SDK para .NET, C++, Go, Java, JavaScript, PHP v3, Python, Ruby v3 y la interfaz de línea de comandos.

Visite nuestra página de recursos para ver y descargar los SDK disponibles.

No, Cognito expone sus API de control y datos en forma de servicios web. Puede implementar su propia biblioteca de clientes llamando directamente a las API de servidor.

Agregue el registro y el inicio de sesión a sus aplicaciones web y móviles

Para los autenticadores de primer factor, Amazon Cognito admite nombre de usuario y contraseña, correo electrónico OTP sin contraseña, SMS OTP sin contraseña y claves de paso WebAuthn. Cognito admite los siguientes autenticadores multifactor (MFA): autenticadores OTP de correo electrónico, OTP de SMS y TOTP. Además, los clientes y socios pueden implementar el soporte para productos de terceros y autenticadores a medida con flujos de autenticación personalizados, mediante extensiones de AWS Lambda.

Sí, puede agregar funciones de registro e inicio de sesión de forma fácil y segura a sus aplicaciones con Amazon Cognito. Sus usuarios puede registrarse e iniciar sesión con el correo electrónico, número de teléfono o nombre de usuario. También puede implementar características de seguridad mejoradas, como la verificación del correo electrónico o del número de teléfono y la autenticación multifactor. Cognito le permite personalizar los flujos de trabajo, por ejemplo, agregando una lógica específica de la aplicación al registro de usuarios para la detección del fraude y la validación de usuarios a través de AWS Lambda. Para obtener más información, consulte nuestra documentación.

Un grupo de usuarios es un directorio de usuarios basado en inquilinos que puede configurar para sus aplicaciones web y móviles. Un grupo de usuarios almacena de forma segura los atributos del perfil de los usuarios y admite un esquema personalizado. Puede crear y administrar un grupo de usuarios con la Consola de AWS, AWS CLI o AWS SDK.

Los desarrolladores pueden usar los atributos de perfil de usuario estándar basados en OpenID Connect (como: nombre de usuario, número de teléfono, dirección, zona horaria, etc.) o personalizar para agregar atributos de usuario específicos de la aplicación.

Sí, puede utilizar la característica de alias para permitir que sus usuarios se registren o inicien sesión con una dirección de correo electrónico o un número de teléfono y una contraseña.

Para obtener más información, consulte nuestra documentación.

 

Sí, puede configurar políticas de contraseñas, como la longitud de la contraseña, la complejidad de los caracteres y los requisitos del historial de contraseñas al configurar su grupo de usuarios. Además, Amazon Cognito permite comprobar las credenciales comprometidas en cada registro, inicio de sesión y cambio de contraseña de un usuario para garantizar que los usuarios no inicien sesión con una contraseña que se haya visto comprometida en otro sitio.

Sí, con Amazon Cognito puede exigir que se verifiquen las direcciones de correo electrónico y los números de teléfono de los usuarios antes de proporcionarles acceso a su aplicación. Durante el registro, se enviará un código de verificación al número de teléfono o a la dirección de correo electrónico del usuario, quien deberá introducir el código de verificación para completar el registro y realizar la confirmación.

Sí, puede permitir que los usuarios de su aplicación inicien sesión mediante la MFA por SMS. Con la MFA por SMS activada, se pedirá a los usuarios la contraseña (el primer factor: lo que saben) y un código de seguridad que solo pueden recibir mediante SMS en su teléfono (el segundo factor: lo que tienen).

Sí, puede personalizar los flujos de registro e inicio de sesión con AWS Lambda. Por ejemplo, puede crear funciones de AWS Lambda para identificar fraudes o realizar validaciones adicionales de los datos de los usuarios. Puede activar funciones de Lambda personalizadas durante el registro previo, posterior a la confirmación (registro), antes de la autenticación, durante la autenticación y después de la autenticación. También puede utilizar funciones de Lambda para personalizar mensajes enviados como parte de la verificación del correo electrónico o número de teléfono y de la autenticación multifactor.

Sí, puede optar por recordar los dispositivos utilizados para obtener acceso a la aplicación y asociar estos dispositivos recordados con los usuarios de su aplicación en un grupo de usuarios de Cognito. También puede optar por usar dispositivos recordados para eliminar los desafíos de segundo factor (autenticación adaptativa) para sus usuarios cuando haya configurado la autenticación multifactor.

Hay dos maneras de migrar los usuarios del directorio de usuarios o la base de datos existente de la aplicación a los grupos de usuarios: la migración justo a tiempo (JIT) y la migración masiva.

Amazon Cognito le ayuda a migrar a los usuarios justo a tiempo cuando inician sesión en su aplicación mediante un activador de AWS Lambda integrado. El activador de Lambda le permite migrar los datos de los usuarios desde un sistema externo sin obligarlos a restablecer su contraseña.

Opcionalmente, puede migrar usuarios en lotes mediante la carga de un archivo CSV que contenga los datos de los perfiles de todos los usuarios de su aplicación. Puede cargar el archivo CSV mediante la consola de Amazon Cognito, las API o la CLI de AWS. Cuando los usuarios inicien sesión por primera vez, deberán verificar su cuenta y crear una contraseña nueva con un código de verificación que se envía a su dirección de email o número telefónico.

Para obtener más información consulte Importación de usuarios en grupos de usuarios.

Permitir el acceso a los recursos de AWS

Sí, los grupos de identidades de Cognito le permiten autenticar a los usuarios a través de un proveedor de identidad externo y proporcionan credenciales de seguridad temporales para acceder a los recursos de backend de su aplicación en AWS o en cualquier servicio que esté detrás de Amazon API Gateway. Amazon Cognito funciona con proveedores de identidad externos que admiten OpenID Connect o SAML y con proveedores de identidad social (como Facebook, Twitter, Amazon). También podemos integrar nuestro propio proveedor de identidad.

Puede usar Amazon, Facebook, Twitter, iniciar sesión con Apple, los proveedores de identidad social de Google, los proveedores de identidad de OpenID Connect (OIDC), los proveedores de identidad de SAML, los grupos de usuarios de Amazon Cognito y los proveedores de desarrolladores personalizados.

Los grupos de identidades le permiten crear identidades únicas para sus usuarios y federarlos de forma segura con los proveedores de servicios de AWS. Los clientes utilizan los grupos de identidades de Amazon Cognito como agentes de credenciales para obtener credenciales de AWS temporales y con privilegios limitados para acceder a los recursos de AWS.

Los usuarios pueden iniciar sesión a través de grupos de usuarios de Amazon Cognito, proveedores de identidad OIDC, proveedores de identidades SAML o proveedores de identidades sociales y obtener acceso basado en roles a los servicios de AWS, como los buckets de Amazon S3 o los registros de Amazon DynamoDB. Los conjuntos de identidades no almacenan los perfiles de usuario. Un mismo conjunto de identidades puede asociarse con una sola aplicación o con varias. Si utiliza dos conjuntos de identidades diferentes para dos aplicaciones, el mismo usuario final dispondrá de un identificador exclusivo distinto en cada uno de ellos.

Su aplicación para móviles autentica al usuario con el proveedor de identidad (IdP) a través del SDK de este. Una vez que el usuario final se autentica con el IdP, la aplicación transfiere el token de OpenID Connect o la aserción SAML devuelta por el IdP al grupo de identidades de Cognito, que devuelve un nuevo ID de Cognito para el usuario y un conjunto de credenciales de AWS temporales con privilegios limitados.

Los grupos de identidades de Cognito se pueden integrar con su sistema de autenticación existente. Con una sencilla llamada a API puede recuperar un ID de Cognito para los usuarios finales en función de su propio identificador único para sus usuarios. Una vez que haya recuperado el ID de Cognito y el token de OpenID, puede usar el SDK de cliente de grupos de identidades de Cognito para acceder a los recursos de AWS y sincronizar los datos de los usuarios.

Los grupos de identidades de Cognito asignan a sus usuarios un conjunto de credenciales temporales con privilegios limitados para acceder a sus recursos de AWS, de modo que no tenga que usar las credenciales de su cuenta de AWS. Los permisos de cada usuario se controlan mediante los roles de IAM de AWS que cree. Puede definir reglas para elegir el rol de IAM de cada usuario, o si utiliza grupos en un grupo de usuarios de Cognito, puede asignar roles de IAM basadas en grupos. Los grupos de identidades de Cognito también permiten definir un rol de IAM independiente con permisos limitados para los usuarios invitados que no estén autenticados. Además, podemos usar el identificador único que genera Cognito para los usuarios con el fin de controlar el acceso a determinados recursos. Por ejemplo, puede crear una política para un bucket de S3 que solo permita a cada usuario acceder a su propia carpeta dentro del bucket.

No, su aplicación se comunica directamente con el proveedor de identidad pública compatible (Amazon, Facebook, Twitter, inicio de sesión con Apple, Google, SAML o un proveedor compatible con Open ID Connect) para autenticar a los usuarios. Cognito Identity no recibe ni almacena credenciales de usuario. Cognito Identity usa el token del proveedor de identidad para obtener un identificador único para el usuario y luego lo transmite mediante un hash unidireccional para que el mismo usuario se pueda volver a reconocer en el futuro sin tener que almacenar su identificador real.

No, Cognito Identity no recibe ninguna información confidencial (por ejemplo, la dirección de email, la lista de amigos, etc.) de los proveedores de identidad.

Los grupos de identidades de Cognito admiten el proceso de creación y venta de tokens para usuarios no autenticados y autenticados. Esto elimina los inconvenientes de una pantalla de inicio de sesión adicional en la aplicación sin renunciar a utilizar credenciales temporales con privilegios limitados para obtener acceso a los recursos de AWS.

No, Cognito Identity soporta el inicio de sesión a través de Amazon, Facebook, Twitter, Digits y Google, así como el acceso de usuarios sin autenticar. Cognito Identity ofrece autenticación federada, almacenamiento de los datos de perfil en un almacén de sincronización y distribución de tokens de acceso de AWS sin necesidad de escribir ningún código de backend.

Los usuarios no autenticados son los que no se autentican con ningún proveedor de identidad y que obtienen acceso a la aplicación como invitados. Podemos definir un rol de IAM aparte con permisos limitados para que estos usuarios obtengan acceso a los recursos backend.

Sí, los grupos de identidades de Cognito admiten identidades independientes en un único dispositivo, como un iPad familiar. Cada identidad se administra por separado y usted puede controlar plenamente el modo en que la aplicación inicia y cierra las sesiones de los usuarios y el modo en que se almacenan los datos locales y remotos de la aplicación.

Puede crear mediante programación un conjunto de datos asociado a los grupos de identidades de Cognito y empezar a guardar los datos en forma de pares clave/valor. Los datos se almacenan tanto localmente en el dispositivo como en el almacén de sincronización de Cognito. Cognito puede sincronizar estos datos entre todos los dispositivos del usuario final.

El número de identidades de la consola de grupos de identidades de Cognito muestra cuántas identidades se crearon mediante las API de grupos de identidades de Cognito. En el caso de las identidades autenticadas (aquellas que inician sesión con un proveedor de inicio de sesión como Facebook o un proveedor de OpenID Connect), cada llamada a la API GetId de los grupos de identidades de Cognito solo creará una identidad única para cada usuario. En cambio, cuando las identidades no estén autenticadas, cada vez que el cliente de una aplicación llame a la API GetId se generará una nueva identidad. Por lo tanto, si su aplicación llama a GetId con identidades no autenticadas varias veces en relación con un solo usuario, este aparecerá como si tuviera varias identidades. Por lo tanto, es importante que guarde en caché la respuesta de GetId cuando utilice identidades no autenticadas y que no la llame varias veces por usuario.

El SDK móvil proporciona la lógica para almacenar en caché los datos de los grupos de identidades de Cognito automáticamente, de modo que no tenga que preocuparse por esto. Si busca una solución de análisis completa para su aplicación, incluida la capacidad de realizar el seguimiento de usuarios únicos, visite Amazon Mobile Analytics.

Precios

Para conocer los precios del grupo de usuarios de Amazon Cognito, consulte la página de precios de Amazon Cognito.

Para calcular los costos estimados, utilice la calculadora de precios de AWS

 

Los grupos de usuarios de Amazon Cognito se pagan en función de los usuarios activos mensuales (MAU). Un usuario se considera un MAU si, en un mes natural, su aplicación genera una operación de identidad para ese usuario, como la creación o actualización administrativa, el registro, el inicio de sesión, el cierre de sesión, la actualización del token, el cambio de contraseña, la actualización de los atributos de la cuenta de usuario o consulta de atributos de un usuario (API AdminGetUser). No se le cobra por sesiones posteriores ni por los usuarios inactivos existentes durante ese mes calendario. Por lo general, el número total de usuarios y el número de operaciones serán mucho mayores que el número total de MAU.

Para conocer los precios de la sincronización de Amazon Cognito, consulte la página de precios de Amazon Cognito.

El uso de la mensajería SMS para verificar números de teléfono, enviar códigos con contraseñas olvidadas o para restablecerlas, o para la autenticación multifactor se cobra por separado. Consulte la página sobre precios de SMS en todo el mundo para obtener más información.

Cada llamada al método de sincronización mediante el SDK para móviles de AWS se considera una operación de sincronización. Si llama directamente a las API de servidor, la operación de sincronización comienza cuando se emite un token de nueva sesión de sincronización y finaliza cuando se realiza correctamente una tarea de escritura o el token de la sesión vence. Tanto si utiliza el método de sincronización del SDK como si llama directamente a las API de servidor, las operaciones de sincronización se cobrarán al mismo precio.

Sí, el SKU de los grupos de usuarios de Amazon Cognito y el SKU de Essentials son gratuitos para las primeras 10 000 MAU. Las cuentas de clientes con grupos de usuarios de Amazon Cognito activos antes del 21 de noviembre de 2024 son elegibles para la capa gratuita de 50 000 MAUs.

Como parte de la capa gratuita de AWS, los clientes de AWS que cumplan los requisitos recibirán 10 GB de capacidad en almacén de sincronización en la nube y 1 000 000 de operaciones de sincronización al mes durante los primeros 12 meses.

El uso de los grupos de identidades de Amazon Cognito para autenticar usuarios y generar identificadores únicos se proporciona de forma gratuita.

El uso de eventos de Cognito para activar funciones de Lambda no conlleva ningún cargo adicional, pero se aplicarán las tarifas normales por el uso de AWS Lambda y otros servicios de AWS mientras se ejecuten las funciones de Lambda.

Consulte la página de precios de AWS Lambda para obtener más detalles.

 

No, usted decide cuándo llamar al método de sincronización. Todas las tareas de escritura o lectura por parte del dispositivo se realizan en el almacén SQLite local. De esta forma, puede ejercer un control total sobre los costos.

Cognito utiliza Amazon SNS para enviar notificaciones push silenciosas. No se aplica ningún cargo adicional por el uso de Cognito para la sincronización push, pero se aplicarán las tarifas normales de Amazon SNS para las notificaciones enviadas a dispositivos.