

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Seguridad avanzada con protección contra amenazas
<a name="cognito-user-pool-settings-threat-protection"></a>

Después de crear el grupo de usuarios, recibirá acceso a la opción **Protección contra amenazas** de la barra de navegación de la consola de Amazon Cognito. Puede activar las características de protección contra amenazas y personalizar las acciones que se llevan a cabo en respuesta a diferentes riesgos. También es posible utilizar el modo de auditoría para recopilar métricas sobre los riesgos detectados sin necesidad de aplicar mitigación alguna de seguridad. En el modo auditoría, Threat Protection publica las métricas en Amazon CloudWatch. Puede ver las métricas después de que Amazon Cognito genere su primer evento. Consulte [Visualización de las métricas de protección contra amenazas](metrics-for-cognito-user-pools.md#user-pool-settings-viewing-threat-protection-metrics).

La protección contra amenazas, anteriormente conocida como *características avanzadas de seguridad*, consiste en un conjunto de herramientas de supervisión de la actividad no deseada en el grupo de usuarios y las herramientas de configuración para detener automáticamente cualquier actividad potencialmente maliciosa. La protección contra amenazas tiene diferentes opciones de configuración para las operaciones de autenticación estándar y personalizadas. Por ejemplo, puede que quiera enviar una notificación a un usuario con un inicio de sesión de autenticación personalizado sospechoso, en el que haya configurado factores de seguridad adicionales, pero también bloquear a un usuario con el mismo nivel de riesgo con una autenticación básica de nombre de usuario y contraseña.

La protección contra amenazas está disponible en el plan de características Plus. Para obtener más información, consulte [Planes de características de grupo de usuarios](cognito-sign-in-feature-plans.md).

Las siguientes opciones de grupo de usuarios son los componentes de la protección contra amenazas.

**Credenciales comprometidas**  
Los usuarios reutilizan las contraseñas de varias cuentas de usuario. La característica de credenciales comprometidas de Amazon Cognito recopila datos de filtraciones públicas de nombres de usuario y contraseñas y compara las credenciales de los usuarios con listas de credenciales filtradas. La detección de credenciales comprometidas también comprueba las contraseñas que se suelen adivinar. Puedes comprobar si hay credenciales comprometidas en los flujos de autenticación username-and-password estándar de los grupos de usuarios. Amazon Cognito no detecta las credenciales comprometidas en la contraseña remota segura (SRP) ni en la autenticación personalizada.  
Puede elegir las acciones del usuario que solicitan la comprobación de credenciales comprometidas y la acción que desea que Amazon Cognito realice en respuesta. Para los eventos de inicio de sesión, registro y cambio de contraseña, Amazon Cognito puede **Bloquear el inicio de sesión** o **Permitir el inicio de sesión**. En ambos casos, Amazon Cognito genera un registro de actividad del usuario, donde puede encontrar más información sobre el evento.  
**Más información**  
[Uso de la detección de credenciales comprometidas](cognito-user-pool-settings-compromised-credentials.md)

**Autenticación flexible**  
Amazon Cognito puede revisar la información sobre la ubicación y el dispositivo de las solicitudes de inicio de sesión de los usuarios y aplicar una respuesta automática para proteger las cuentas de usuario del grupo de usuarios contra actividades sospechosas. Puede supervisar la actividad de los usuarios y automatizar las respuestas relativas a los niveles de riesgo detectados en el nombre de usuario, la contraseña, la SRP y la autenticación personalizada.  
Al activar la protección contra amenazas, Amazon Cognito asigna una puntuación de riesgo a la actividad del usuario. Puede asignar una respuesta automática a una actividad sospechosa: puede **solicitar la MFA**, **bloquear el inicio de sesión** o simplemente registrar los detalles de la actividad y la puntuación de riesgo. También puede enviar automáticamente mensajes de correo electrónico para notificar al usuario la actividad sospechosa para que pueda restablecer la contraseña o realizar otras acciones autoguiadas.  
**Más información**  
[Uso de la autenticación flexible](cognito-user-pool-settings-adaptive-authentication.md)

**Lista de direcciones IP permitidas y denegadas**  
Con la protección contra amenazas de Amazon Cognito en modo **Funcionalidad completa**, puede crear una dirección IP con las excepciones **Bloquear siempre** y **Permitir siempre**. A una sesión de una dirección IP en la lista de excepciones **Always block (Bloquear siempre)** no se le asigna un nivel de riesgo mediante la autenticación adaptativa y no puede iniciar sesión en su grupo de usuarios.  

**Lo que debe saber sobre las listas de direcciones IP permitidas y bloqueadas**
+ Debe expresar **Bloquear siempre** y **Permitir siempre** en formato CIDR, como `192.0.2.0/24`, una máscara de 24 bits o `192.0.2.252/32`, una sola dirección IP.
+  Los dispositivos con direcciones IP en un rango **de IP de bloqueo** permanente no pueden registrarse ni iniciar sesión con aplicaciones de inicio de sesión gestionadas o basadas en el SDK, pero sí pueden iniciar sesión con aplicaciones de terceros. IdPs 
+ Las listas de **Permitir siempre** y **Bloquear siempre** no afectan a la actualización de los tokens.
+ Amazon Cognito no aplica reglas de MFA de autenticación flexible a los dispositivos de un rango de direcciones IP **Permitir siempre**, pero sí aplica reglas de credenciales comprometidas.

**Exportación de registros**  
La protección contra amenazas registra detalles pormenorizados de las solicitudes de autenticación de los usuarios en el grupo de usuarios. Estos registros incluyen evaluaciones de amenazas, información del usuario y metadatos de las sesiones, como la ubicación y el dispositivo. Para conservar y analizar estos registros, puede crear con ellos archivos externos. Los grupos de usuarios de Amazon Cognito exportan los registros de protección contra amenazas a Amazon S3, CloudWatch Logs y Amazon Data Firehose. Para obtener más información, consulte [Visualización y exportación del historial de eventos de los usuarios](cognito-user-pool-settings-adaptive-authentication.md#user-pool-settings-adaptive-authentication-event-user-history).  
**Más información**  
[Exportación de los registros de actividad de los usuarios en la protección contra amenazas](exporting-quotas-and-usage.md#exporting-quotas-and-usage-user-activity)

**Topics**
+ [Consideraciones y limitaciones en la protección contra amenazas](#cognito-user-pool-threat-protection-considerations)
+ [Activación de la protección contra amenazas en los grupos de usuarios](#cognito-user-pool-threat-protection-activating)
+ [Conceptos de aplicación de la protección contra amenazas](#cognito-user-pool-settings-threat-protection-threat-protection-enforcement)
+ [Protección contra amenazas para la autenticación estándar y la autenticación personalizada](#cognito-user-pool-settings-threat-protection-threat-protection-types)
+ [Requisitos previos de la protección contra amenazas](#cognito-user-pool-threat-protection-prerequisites)
+ [Configuración de la protección contra amenazas](#cognito-user-pool-settings-configure-threat-protection)
+ [Uso de la detección de credenciales comprometidas](cognito-user-pool-settings-compromised-credentials.md)
+ [Uso de la autenticación flexible](cognito-user-pool-settings-adaptive-authentication.md)
+ [Recopilación de datos para la protección contra amenazas en las aplicaciones](user-pool-settings-viewing-threat-protection-app.md)

## Consideraciones y limitaciones en la protección contra amenazas
<a name="cognito-user-pool-threat-protection-considerations"></a>

**Las opciones de protección contra amenazas varían según los flujos de autenticación**  
Amazon Cognito admite tanto la autenticación flexible como la detección de credenciales comprometidas con los flujos de autenticación `USER_PASSWORD_AUTH` y `ADMIN_USER_PASSWORD_AUTH`. Solo puede habilitar la autenticación flexible para `USER_SRP_AUTH`. No puede utilizar la protección contra amenazas con el inicio de sesión federado.

**Bloquee siempre la contribución para solicitar cuotas IPs**  
Las solicitudes bloqueadas de direcciones IP que figuran en una lista de excepciones **Bloquear siempre** del grupo de usuarios contribuye a las [cuotas de tasas de solicitudes](https://docs.aws.amazon.com/cognito/latest/developerguide/limits.html#category_operations) para los grupos de usuarios.

**La protección contra amenazas no aplica límites de tasas**  
Parte del tráfico malintencionado se caracteriza por un gran volumen de solicitudes, como los ataques de denegación de servicio (DDoS) distribuidos. Las clasificaciones de riesgo que Amazon Cognito aplica al tráfico entrante se basan en la solicitud y no tienen en cuenta el volumen de solicitudes. Las solicitudes individuales en un evento de gran volumen pueden recibir una puntuación de riesgo y una respuesta automática por motivos relacionados con la capa de aplicaciones y no por su papel en un ataque volumétrico. Para implementar defensas contra los ataques volumétricos en sus grupos de usuarios, añada la AWS WAF web ACLs. Para obtener más información, consulte [Asocie una ACL AWS WAF web a un grupo de usuarios](user-pool-waf.md).

**La protección contra amenazas no afecta a las solicitudes de M2M**  
La concesión de credenciales de cliente está destinada a la autorización machine-to-machine (M2M) sin conexión con las cuentas de usuario. La protección contra amenazas solo supervisa las cuentas de usuario y contraseñas de su grupo de usuarios. Para implementar funciones de seguridad en su actividad M2M, tenga en cuenta las capacidades de monitoreo de AWS WAF las tasas de solicitudes y el contenido. Para obtener más información, consulte [Asocie una ACL AWS WAF web a un grupo de usuarios](user-pool-waf.md).

## Activación de la protección contra amenazas en los grupos de usuarios
<a name="cognito-user-pool-threat-protection-activating"></a>

------
#### [ Amazon Cognito user pools console ]

**Cómo activar la protección contra amenazas para un grupo de usuarios**

1. Vaya a la [consola de Amazon Cognito](https://console.aws.amazon.com/cognito/home). Si se le solicita, introduzca sus AWS credenciales.

1. Elija **User Pools** (Grupos de usuarios).

1. Elija un grupo de usuarios existente en la lista o [cree un grupo de usuarios](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html).

1. Si aún no lo ha hecho, active el plan de características Plus desde el menú **Configuración**.

1. Seleccione el menú **Protección contra amenazas** y **Activar**.

1. Seleccione **Save changes (Guardar cambios)**.

------
#### [ API ]

Configura tu plan de funciones como Plus en una solicitud de [UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html)API [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)o en una solicitud. El siguiente ejemplo parcial del cuerpo de la solicitud establece la protección contra amenazas en el modo de función completa. Para ver un ejemplo de solicitud completo, consulte [Ejemplos](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html#API_CreateUserPool_Examples).

```
"UserPoolAddOns": { 
      "AdvancedSecurityMode": "ENFORCED"
   }
```

------

La protección contra amenazas es el término colectivo que designa a las características que supervisan las operaciones de los usuarios en busca de indicios de apropiación de cuentas y responden automáticamente para proteger las cuentas de usuario afectadas. Puede aplicar la configuración de protección contra amenazas a los usuarios cuando inician sesión con flujos de autenticación estándar y personalizados.

La protección contra amenazas [genera registros](cognito-user-pool-settings-adaptive-authentication.md#user-pool-settings-adaptive-authentication-event-user-history) que detallan el inicio y el cierre de sesión de los usuarios y otras actividades. Puede exportar estos registros a un sistema de terceros. Para obtener más información, consulte [Visualización y exportación del historial de eventos de los usuarios](cognito-user-pool-settings-adaptive-authentication.md#user-pool-settings-adaptive-authentication-event-user-history).

## Conceptos de aplicación de la protección contra amenazas
<a name="cognito-user-pool-settings-threat-protection-threat-protection-enforcement"></a>

La protección contra amenazas comienza en un modo de *solo auditoría,* en el que el grupo de usuarios supervisa la actividad de los usuarios, asigna los niveles de riesgo y genera registros. Como práctica recomendada, ejecute el modo de solo auditoría durante dos semanas o más antes de activar el *modo de función completa*. Este modo incluye un conjunto de reacciones automáticas ante la detección de actividades peligrosas y contraseñas comprometidas. Con el modo de solo auditoría, puede supervisar las evaluaciones de amenazas que realiza Amazon Cognito. También puede [proporcionar comentarios](cognito-user-pool-settings-adaptive-authentication.md#user-pool-settings-adaptive-authentication-feedback) que servirán para entrenar la característica sobre falsos positivos y negativos.

Puede configurar la aplicación de la protección contra amenazas en el nivel del grupo de usuarios para que abarque a todos los clientes de aplicaciones del grupo de usuarios y en el nivel de los clientes de aplicaciones individuales. Las configuraciones de protección contra amenazas de los clientes de aplicación anulan la configuración del grupo de usuarios. Para configurar la protección contra amenazas de un cliente de aplicación, en la consola de Amazon Cognito, en el menú **Clientes de aplicación** de su grupo de usuarios, vaya a la configuración del cliente de aplicación. Allí, en **Utilizar configuración de nivel de cliente**, configure la aplicación de la protección exclusivamente para el cliente de aplicación.

Además, puede configurar la protección contra amenazas por separado para los tipos de autenticación estándar y personalizada.

## Protección contra amenazas para la autenticación estándar y la autenticación personalizada
<a name="cognito-user-pool-settings-threat-protection-threat-protection-types"></a>

Las formas de configuración de la protección contra amenazas dependen del tipo de autenticación que realice en el grupo de usuarios y en los clientes de aplicaciones. Cada uno de los siguientes tipos de autenticación puede tener su propio modo de aplicación y respuestas automáticas.

**Autenticación estándar**  
La *autenticación estándar* consiste en el inicio de sesión, el cierre de sesión y la administración de contraseñas de los usuarios con flujos de nombre de usuario y contraseña, y en el inicio de sesión administrado. La protección contra amenazas de Amazon Cognito supervisa las operaciones en busca de indicadores de riesgo cuando se inicia sesión con el inicio de sesión administrado o se utilizan los siguientes parámetros de la API `AuthFlow`:    
**[InitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html#CognitoUserPools-InitiateAuth-request-AuthFlow)**  
`USER_PASSWORD_AUTH`, `USER_SRP_AUTH`. La característica de credenciales comprometidas no tiene acceso a las contraseñas en inicio de sesión con `USER_SRP_AUTH` y no supervisa los eventos relacionados con este flujo ni actúa en consecuencia.  
**[AdminInitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html#CognitoUserPools-AdminInitiateAuth-request-AuthFlow)**  
`ADMIN_USER_PASSWORD_AUTH`, `USER_SRP_AUTH`. La característica de credenciales comprometidas no tiene acceso a las contraseñas en inicio de sesión con `USER_SRP_AUTH` y no supervisa los eventos relacionados con este flujo ni actúa en consecuencia.
Puede configurar el **Modo de cumplimiento** de la autenticación estándar en las opciones **Solo auditoría** o **Función completa**. Para deshabilitar la supervisión de amenazas para la autenticación estándar, establezca la protección contra amenazas en **Sin aplicación**.

**Autenticación personalizada**  
La *autenticación personalizada* consiste en el inicio de sesión del usuario con [desencadenadores de Lambda de desafío personalizados](user-pool-lambda-challenge.md). No puede realizar una autenticación personalizada en el inicio de sesión administrado. La protección contra amenazas de Amazon Cognito supervisa las operaciones en busca de indicadores de riesgo cuando se inicia sesión con el parámetro `AuthFlow` de la API `CUSTOM_AUTH` de `InitiateAuth` y `AdminInitiateAuth`.  
Puede configurar el **Modo de cumplimiento** de la autenticación personalizada en las opciones **Solo auditoría**, **Función completa** o **Sin aplicación**. La opción **Sin aplicación** desactiva la supervisión de amenazas en la autenticación personalizada sin que afecte a las características de protección contra amenazas.

## Requisitos previos de la protección contra amenazas
<a name="cognito-user-pool-threat-protection-prerequisites"></a>

Antes de comenzar, necesitará lo siguiente:
+ Un grupo de usuarios con un cliente de aplicación. Para obtener más información, consulte [Introducción a los grupos de usuarios](getting-started-user-pools.md).
+ Establezca la autenticación multifactor (MFA) en **Optional (Opcional)** en la consola de Amazon Cognito para utilizar la característica de autenticación flexible basada en riesgos. Para obtener más información, consulte [Adición de MFA a un grupo de usuarios.](user-pool-settings-mfa.md).
+ Si utiliza notificaciones por correo electrónico, diríjase a la [consola de Amazon SES](https://console.aws.amazon.com/ses/home) para configurar y verificar un dominio o una dirección de correo electrónico con el fin de usar notificaciones por correo electrónico. Para obtener más información sobre Amazon SES, consulte [Verificación de identidades en Amazon SES](https://docs.aws.amazon.com/ses/latest/dg/verify-addresses-and-domains.html).

## Configuración de la protección contra amenazas
<a name="cognito-user-pool-settings-configure-threat-protection"></a>

Siga estas instrucciones para configurar la protección contra amenazas del grupo de usuarios.

**nota**  
Para establecer una configuración de protección contra amenazas diferente para un cliente de aplicación en la consola de grupos de usuarios de Amazon Cognito, seleccione el cliente de aplicación en el menú **Clientes de aplicación** y elija **Utilizar configuración de nivel de cliente**.

------
#### [ Consola de administración de AWS ]

**Cómo configurar la protección contra amenazas para un grupo de usuarios**

1. Vaya a la [consola de Amazon Cognito](https://console.aws.amazon.com/cognito/home). Si se te solicita, introduce tus AWS credenciales.

1. Elija **User Pools** (Grupos de usuarios).

1. Elija un grupo de usuarios existente en la lista o [cree un grupo de usuarios](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html).

1. Seleccione el menú **Protección contra amenazas** y **Activar**.

1. Elija el método de protección contra amenazas que desee configurar: **Autenticación estándar y personalizada**. Puede configurar diferentes modos de aplicación para la autenticación personalizada y estándar, pero ambas comparten la configuración de las respuestas automatizadas en el modo **Función completa**.

1. Seleccione **Editar**.

1. Elija un **Modo de aplicación**. Para empezar a responder inmediatamente a los riesgos detectados, seleccione **Función completa** y configure las respuestas automatizadas para las credenciales en riesgo y la autenticación flexible. Para recopilar información en los registros a nivel de usuario y en ellos CloudWatch, seleccione **Solo auditoría**.

   Recomendamos que mantenga la protección contra amenazas en el modo de auditoría durante dos semanas antes de activar las acciones. Durante este tiempo, Amazon Cognito puede aprender los patrones de uso de los usuarios de la aplicación y, por su parte, puede enviar comentarios sobre eventos para ajustar las respuestas.

1. Si seleccionó **Audit only** (Solo auditoría), elija **Save changes** (Guardar los cambios). Si seleccionó **Full function (Función completa)**:

   1. Seleccione si va a realizar una acción **Custom (Personalizada)** o a utilizar los **Cognito defaults (Valores predeterminados de Cognito)** para responder ante supuestas **Compromised credentials (Credenciales atacadas)**. Los **Cognito defaults (Valores predeterminados de Cognito)** son:

      1. Detectar credenciales atacadas en**Sign-in (Inicio de sesión)**, **Sign-up (Registro)**, y **Password change (Cambio de contraseña)**.

      1. Responder ante credenciales atacadas con la acción **Block sign-in (Bloquear inicio de sesión)**.

   1. Si ha seleccionado acciones **Custom** para **Credenciales comprometidas**, elija las acciones del grupo de usuarios que Amazon Cognito utilizará para la **Detección de eventos** y las **Respuestas contra credenciales atacadas** que desearía que Amazon Cognito realizara. Puede**Block sign-in (Bloquear inicio de sesión)** o **Allow sign-in (Permitir inicio de sesión)** con supuestas credenciales atacadas.

   1. Elija cómo responder a los intentos de inicio de sesión maliciosos en **Adaptive authentication (Autenticación flexible)**. Seleccione si va a realizar una acción **Custom** (Personalizada) o a utilizar los **Cognito defaults** (Valores predeterminados de Cognito) para responder ante supuestas Compromised credentials (Credenciales atacadas). Cuando selecciona **Cognito defaults** (Valores predeterminados de Cognito), Amazon Cognito bloquea el inicio de sesión en todos los niveles de riesgo y no notifica al usuario.

   1. Si selecciona acciones **Custom** (Personalizadas) para **Adaptive Authentication** (Autenticación flexible), elija acciones de **Automatic risk response** (Respuesta automática al riesgo) que Amazon Cognito llevará a cabo en respuesta a los riesgos detectados en función del nivel de gravedad. Cuando asigna una respuesta a un nivel de riesgo, no se puede asignar una respuesta menos restrictiva a un nivel de riesgo más alto. Puede asignar las siguientes respuestas a los niveles de riesgo:

      1. **Allow sign-in** (Permitir inicio de sesión): No se realizan acciones preventivas.

      1. **Optional MFA** (MFA opcional): si el usuario tiene MFA configurada, Amazon Cognito siempre requerirá que el usuario proporcione un SMS adicional o un factor de contraseña temporal de un solo uso (TOTP) cuando inicie sesión. Si el usuario no tiene MFA configurada, puede seguir iniciando sesión normalmente.

      1. **Require MFA** (Requerir MFA): si el usuario tiene MFA configurada, Amazon Cognito siempre requerirá que el usuario proporcione un SMS adicional o un factor de contraseña temporal de un solo uso (TOTP) cuando inicie sesión. Si el usuario no tiene MFA configurada, Amazon Cognito le pedirá que configure la MFA. Antes de requerir automáticamente la MFA para los usuarios, configure un mecanismo en la aplicación para capturar números de teléfono para la MFA por SMS o para registrar aplicaciones autenticadoras para la MFA por TOTP.

      1. **Block sign-in (Bloquear inicio de sesión)**: impide que el usuario inicie sesión.

      1. **Notify user (Notificar al usuario)**: envía un mensaje de correo electrónico al usuario con información sobre el riesgo que Amazon Cognito detectó junto con la respuesta que se ha realizado. Puede personalizar plantillas de correo electrónico para los mensajes que envíe.

1. Si eligió **Notify user (Notificar al usuario)** en el paso anterior, puede personalizar la configuración de entrega de correo electrónico y las plantillas de menajes de correo electrónico para una autenticación flexible.

   1. En **Configuración de correo electrónico**, elija las opciones **Región SES**, **Dirección de correo electrónico del REMITENTE**, **Nombre del REMITENTE** y **Dirección de correo electrónico de RESPUESTA** que desea utilizar con la autenticación flexible. Para obtener más información sobre cómo integrar los mensajes de correo electrónico del grupo de usuarios con Amazon Simple Email Service, consulte [Configuración de correo electrónico para grupos de usuarios de Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-email.html).  
![\[Historial de eventos del usuario\]](http://docs.aws.amazon.com/es_es/cognito/latest/developerguide/images/cup-advanced-security-ses-notification.png)

   1. Expanda **Email templates** (Plantillas de correo electrónico) para personalizar las notificaciones de autenticación flexible con versiones de correo electrónico en HTML y de texto sin formato. Para obtener más información sobre las plantillas de mensajes de correo electrónico, consulte [Plantillas de mensaje](cognito-user-pool-settings-message-customizations.md#cognito-user-pool-settings-message-templates).

1. **Amplíe **las excepciones de direcciones IP** para crear una lista de rangos de direcciones o rangos de IPv6 direcciones que **siempre** estén permitidos IPv4 o bloqueados, independientemente de la evaluación de los riesgos de protección contra amenazas.** Especifique los intervalos de direcciones IP en [CIDR notation](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) (Notación CIDR) (como por ejemplo: 192.168.100.0/24).

1. Seleccione **Save changes (Guardar cambios)**.

------
#### [ API (user pool) ]

Para establecer la configuración de protección contra amenazas para un grupo de usuarios, envíe una solicitud de [SetRiskConfiguration](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SetRiskConfiguration.html)API que incluya un `UserPoolId` parámetro, pero no uno. `ClientId` A continuación, se muestra un ejemplo de cuerpo de solicitud de un grupo de usuarios. Esta configuración de riesgo ejecuta una serie de acciones cada vez mayores en función de la gravedad del riesgo y envía notificaciones a los usuarios en todos los niveles de riesgo. Aplica un bloqueo de credenciales comprometidas a las operaciones de registro.

Para aplicar esta configuración, debe `AdvancedSecurityMode` configurarla `ENFORCED` en una solicitud independiente [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)o de [UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html)API. Para obtener más información sobre las plantillas de marcadores de posición, como `{username}` en este ejemplo, consulte [Configuración de los mensajes de verificación, invitación, autenticación y MFA](cognito-user-pool-settings-message-customizations.md).

```
{
   "AccountTakeoverRiskConfiguration": { 
      "Actions": { 
         "HighAction": { 
            "EventAction": "MFA_REQUIRED",
            "Notify": true
         },
         "LowAction": { 
            "EventAction": "NO_ACTION",
            "Notify": true
         },
         "MediumAction": { 
            "EventAction": "MFA_IF_CONFIGURED",
            "Notify": true
         }
      },
      "NotifyConfiguration": { 
         "BlockEmail": { 
            "Subject": "You have been blocked for suspicious activity",
            "TextBody": "We blocked {username} at {login-time} from {ip-address}."
         },
         "From": "admin@example.com",
         "MfaEmail": { 
            "Subject": "Suspicious activity detected, MFA required",
            "TextBody": "Unexpected sign-in from {username} on device {device-name}. You must use MFA."
         },
         "NoActionEmail": { 
            "Subject": "Suspicious activity detected, secure your user account",
            "TextBody": "We noticed suspicious sign-in activity by {username} from {city}, {country} at {login-time}. If this was not you, reset your password."
         },
         "ReplyTo": "admin@example.com",
         "SourceArn": "arn:aws:ses:us-west-2:123456789012:identity/admin@example.com"
      }
   },
   "CompromisedCredentialsRiskConfiguration": { 
      "Actions": { 
         "EventAction": "BLOCK"
      },
      "EventFilter": [ "SIGN_UP" ]
   },
   "RiskExceptionConfiguration": { 
      "BlockedIPRangeList": [ "192.0.2.0/24","198.51.100.0/24" ],
      "SkippedIPRangeList": [ "203.0.113.0/24" ]
   },
   "UserPoolId": "us-west-2_EXAMPLE"
}
```

------
#### [ API (app client) ]

Para establecer la configuración de protección contra amenazas para un cliente de aplicaciones, envía una solicitud de [SetRiskConfiguration](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SetRiskConfiguration.html)API que incluya un `UserPoolId` parámetro y un `ClientId` parámetro. A continuación, se muestra un ejemplo de cuerpo de solicitud de un cliente de aplicación. Esta configuración de riesgo es más estricta que la configuración del grupo de usuarios y bloquea las entradas de alto riesgo. También aplica bloques de credenciales comprometidas a las operaciones de registro, inicio de sesión y restablecimiento de contraseñas.

Para aplicar esta configuración, debes `AdvancedSecurityMode` configurarla `ENFORCED` en una solicitud independiente [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)o de [UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html)API. Para obtener más información sobre las plantillas de marcadores de posición, como `{username}` en este ejemplo, consulte [Configuración de los mensajes de verificación, invitación, autenticación y MFA](cognito-user-pool-settings-message-customizations.md).

```
{
   "AccountTakeoverRiskConfiguration": { 
      "Actions": { 
         "HighAction": { 
            "EventAction": "BLOCK",
            "Notify": true
         },
         "LowAction": { 
            "EventAction": "NO_ACTION",
            "Notify": true
         },
         "MediumAction": { 
            "EventAction": "MFA_REQUIRED",
            "Notify": true
         }
      },
      "NotifyConfiguration": { 
         "BlockEmail": { 
            "Subject": "You have been blocked for suspicious activity",
            "TextBody": "We blocked {username} at {login-time} from {ip-address}."
         },
         "From": "admin@example.com",
         "MfaEmail": { 
            "Subject": "Suspicious activity detected, MFA required",
            "TextBody": "Unexpected sign-in from {username} on device {device-name}. You must use MFA."
         },
         "NoActionEmail": { 
            "Subject": "Suspicious activity detected, secure your user account",
            "TextBody": "We noticed suspicious sign-in activity by {username} from {city}, {country} at {login-time}. If this was not you, reset your password."
         },
         "ReplyTo": "admin@example.com",
         "SourceArn": "arn:aws:ses:us-west-2:123456789012:identity/admin@example.com"
      }
   },
   "ClientId": "1example23456789",
   "CompromisedCredentialsRiskConfiguration": { 
      "Actions": { 
         "EventAction": "BLOCK"
      },
      "EventFilter": [ "SIGN_UP", "SIGN_IN", "PASSWORD_CHANGE" ]
   },
   "RiskExceptionConfiguration": { 
      "BlockedIPRangeList": [ "192.0.2.1/32","192.0.2.2/32" ],
      "SkippedIPRangeList": [ "192.0.2.3/32","192.0.2.4/32" ]
   },
   "UserPoolId": "us-west-2_EXAMPLE"
}
```

------

# Uso de la detección de credenciales comprometidas
<a name="cognito-user-pool-settings-compromised-credentials"></a>

Amazon Cognito puede detectar si el nombre de usuario y la contraseña de un usuario se han visto comprometidos en otro sitio. Esto puede ocurrir cuando los usuarios reutilizan las credenciales en más de un sitio, o cuando utilizan contraseñas poco seguras. Amazon Cognito comprueba los [usuarios locales](cognito-terms.md#terms-localuser) que inician sesión con nombre de usuario y contraseña, en el inicio de sesión administrado y con la API de Amazon Cognito.

En la consola de Amazon Cognito, en el menú **Protección contra amenazas**, puede configurar **Credenciales comprometidas**. Configure **Event detection** (Detección de eventos) para elegir los eventos de usuario que desea supervisar en busca de credenciales comprometidas. Configure **Compromised credentials responses** (Respuestas ante credenciales comprometidas) para elegir si desea permitir o bloquear al usuario si se han detectado credenciales comprometidas. Amazon Cognito puede comprobar si hay credenciales comprometidas durante el inicio de sesión, el registro o los cambios de contraseña.

Si selecciona **Permitir inicio de sesión**, puede revisar Amazon CloudWatch Logs para supervisar las evaluaciones que Amazon Cognito realiza sobre los eventos de los usuarios. Para obtener más información, consulte [Visualización de las métricas de protección contra amenazas](metrics-for-cognito-user-pools.md#user-pool-settings-viewing-threat-protection-metrics). Cuando elige **Block sign-in** (Bloquear el inicio de sesión), Amazon Cognito impide el inicio de sesión de los usuarios que utilizan credenciales comprometidas. Cuando Amazon Cognito bloquea el inicio de sesión de un usuario, establece el [https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UserType.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UserType.html) de usuario en `RESET_REQUIRED`. Un usuario con un estado `RESET_REQUIRED` debe cambiar su contraseña antes de poder iniciar sesión de nuevo.

Las credenciales comprometidas pueden comprobar las contraseñas de las siguientes actividades de usuario.

**Sign-up (Registro)**  
Su grupo de usuarios comprueba las contraseñas que los usuarios transmiten durante la [SignUp](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SignUp.html)operación y en la página de registro del inicio de sesión gestionado para ver si hay indicios de que están en peligro.

**Inicio de sesión**  
Su grupo de usuarios comprueba las contraseñas que los usuarios envían al iniciar sesión con contraseñas para detectar indicios de que están en peligro. Amazon Cognito puede revisar el `ADMIN_USER_PASSWORD_AUTH` flujo de entrada [AdminInitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html), el `USER_PASSWORD_AUTH` flujo de entrada [InitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html)y la `PASSWORD` opción del `USER_AUTH` flujo en ambos.  
En este momento, Amazon Cognito no comprueba si hay credenciales comprometidas para las operaciones de inicio de sesión con el flujo Secure Remote Password (SRP). SRP envía una prueba de contraseña cifrada durante el inicio de sesión. Amazon Cognito no tiene acceso a las contraseñas internamente, por lo que solo puede evaluar una contraseña que el cliente le transmita en texto plano.

**Restablecimiento de la contraseña**  
Con la operación de [ConfirmForgotPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmForgotPassword.html)autoservicio de restablecimiento de contraseñas, su grupo de usuarios comprueba si hay indicios de riesgo en las operaciones que establecen contraseñas para nuevos usuarios. El código necesario para esta operación lo genera [ForgotPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ForgotPassword.html)y [AdminResetUserPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminResetUserPassword.html).  
Las credenciales comprometidas no comprueban las contraseñas temporales o permanentes establecidas por el administrador. [AdminSetUserPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminSetUserPassword.html) Sin embargo, en el caso de las contraseñas temporales, el grupo de usuarios comprueba las contraseñas en función de las respuestas al `NEW_PASSWORD_REQUIRED` desafío en y. [RespondToAuthChallenge[AdminRespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminRespondToAuthChallenge.html)](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RespondToAuthChallenge.html)

Para añadir protecciones contra credenciales atacadas a un grupo de usuarios, consulte [Seguridad avanzada con protección contra amenazas](cognito-user-pool-settings-threat-protection.md).

# Uso de la autenticación flexible
<a name="cognito-user-pool-settings-adaptive-authentication"></a>

Con la autenticación flexible, puede configurar el grupo de usuarios para bloquear los inicios de sesión sospechosos o agregar la autenticación de segundo factor en respuesta a un aumento del nivel de riesgo. Para cada intento de inicio de sesión, Amazon Cognito genera una puntuación de riesgo que indica la probabilidad de que la solicitud de inicio de sesión proceda de un origen comprometido. Esta puntuación de riesgo se basa en los factores de dispositivo y usuario que su aplicación proporciona y otros factores que Amazon Cognito deduce de la solicitud. Algunos factores que contribuyen a la evaluación del riesgo por parte de Amazon Cognito son la dirección IP , el agente de usuario y la distancia geográfica con respecto a otros intentos de inicio de sesión. La autenticación adaptativa puede activarse o requerir la autenticación multifactor (MFA) para un usuario de su grupo de usuarios cuando Amazon Cognito detecta un riesgo en la sesión de un usuario y este aún no ha elegido un método de MFA. Cuando se activa la MFA para un usuario, siempre se le presenta el desafío de proporcionar o configurar un segundo factor durante la autenticación, independientemente de cómo se haya configurado la autenticación adaptativa. Desde el punto de vista del usuario, la aplicación ofrece ayuda para configurar la MFA y, opcionalmente, Amazon Cognito le impide volver a iniciar sesión hasta que haya configurado un factor adicional.

Amazon Cognito publica métricas sobre los intentos de inicio de sesión, sus niveles de riesgo y las impugnaciones fallidas a Amazon. CloudWatch Para obtener más información, consulte [Visualización de las métricas de protección contra amenazas](metrics-for-cognito-user-pools.md#user-pool-settings-viewing-threat-protection-metrics).

Para añadir la autenticación flexible a un grupo de usuarios, consulte [Seguridad avanzada con protección contra amenazas](cognito-user-pool-settings-threat-protection.md).

**Topics**
+ [Información general sobre la autenticación flexible](#security-cognito-user-pool-settings-adaptive-authentication-overview)
+ [Adición de datos de sesión y dispositivos de usuario a las solicitudes de API](#user-pool-settings-adaptive-authentication-device-fingerprint)
+ [Visualización y exportación del historial de eventos de los usuarios](#user-pool-settings-adaptive-authentication-event-user-history)
+ [Suministro de comentarios sobre los eventos](#user-pool-settings-adaptive-authentication-feedback)
+ [Envío de mensajes de notificación](#user-pool-settings-adaptive-authentication-messages)

## Información general sobre la autenticación flexible
<a name="security-cognito-user-pool-settings-adaptive-authentication-overview"></a>

En la consola de Amazon Cognito, en el menú **Protección contra amenazas**, puede elegir la configuración de la autenticación flexible, como las acciones que se deben realizar en los distintos niveles de riesgo y la personalización de los mensajes de notificación para los usuarios. Puede asignar una configuración de protección contra amenazas global a todos sus clientes de aplicación, pero aplicar una configuración de nivel de cliente a los clientes de aplicaciones individuales.

La autenticación adaptativa de Amazon Cognito asigna uno de los siguientes niveles de riesgo a cada sesión de usuario: **alto**, **medio**, **bajo** o **sin riesgo**.

Estudie bien sus opciones cuando cambie **Enforcement method** (Método de aplicación) de **Audit-only** (Solo auditoría) a **Full-function** (Función completa). Las respuestas automáticas que se aplican a los niveles de riesgo influyen en el nivel de riesgo que Amazon Cognito asigna a las sesiones de usuario posteriores con las mismas características. Por ejemplo, si decide no realizar ninguna acción o marcar **Allow** (Permitir) en las sesiones de usuario que Amazon Cognito evalúa inicialmente como de alto riesgo, Amazon Cognito considera que las sesiones similares tienen un riesgo menor.


**Para cada nivel de riesgo, puede elegir entre las opciones siguientes:**  

|  Opción  |  Action  | 
| --- | --- | 
| Permitir | Los usuarios pueden iniciar sesión sin un factor adicional. | 
| MFA opcional | Los usuarios que tengan configurado un segundo factor deberán superar un segundo desafío de segundo factor para iniciar sesión. Los segundos factores disponibles son un número de teléfono para SMS y un token de software TOTP. Los usuarios que no tienen un segundo factor configurado pueden iniciar sesión con un solo conjunto de credenciales. | 
| Requerir MFA | Los usuarios que tengan configurado un segundo factor deberán superar un desafío de segundo factor para iniciar sesión. Amazon Cognito bloquea el inicio de sesión de los usuarios que no hayan configurado un segundo factor. | 
| Bloque | Amazon Cognito bloquea todos los intentos de inicio de sesión con el nivel de riesgo designado. | 

**nota**  
No es necesario verificar los números de teléfono para utilizarlos como segundo factor de autenticación para SMS.

## Adición de datos de sesión y dispositivos de usuario a las solicitudes de API
<a name="user-pool-settings-adaptive-authentication-device-fingerprint"></a>

Puede recopilar y transferir información sobre la sesión de su usuario a la protección contra amenazas de Amazon Cognito cuando usa la API para registrarlo, iniciarlo y restablecer su contraseña. Esta información incluye la dirección IP de su usuario y un identificador de dispositivo único.

Es posible que tenga un dispositivo de red intermedio entre sus usuarios y Amazon Cognito, como un servicio proxy o un servidor de aplicaciones. Puede recopilar los datos de contexto de los usuarios y pasarlos a Amazon Cognito para que la autenticación adaptativa calcule el riesgo en función de las características del punto de conexión de usuario, en lugar de su servidor o proxy. Si la aplicación del lado del cliente llama directamente a las operaciones de la API de Amazon Cognito, la autenticación adaptativa registra automáticamente la dirección IP de origen. Sin embargo, no registra otra información del dispositivo, como el `user-agent`, a menos que también recoja una huella digital del dispositivo.

Genere estos datos con la biblioteca de recopilación de datos contextuales de Amazon Cognito y envíelos a Amazon Cognito Threat Protection con [ContextData](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ContextDataType.html)los parámetros y. [UserContextData](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UserContextDataType.html) La biblioteca de recopilación de datos contextuales se incluye en. AWS SDKs Para obtener más información, consulte [Integración de la autenticación y la autorización de Amazon Cognito con aplicaciones web y móviles](cognito-integrate-apps.md). Puede enviar `ContextData` si tiene el plan de características Plus. Para obtener más información, consulte [Configuración de la protección contra amenazas](cognito-user-pool-settings-threat-protection.md#cognito-user-pool-settings-configure-threat-protection).

Cuando llame a las siguientes operaciones de API autenticadas de Amazon Cognito desde el servidor de aplicaciones, pase la IP del dispositivo del usuario en el parámetro `ContextData`. Además, debe transferir el nombre del servidor, la ruta del servidor y los datos de la huella dactilar codificada del dispositivo.
+ [AdminInitiateAuth ](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html)
+ [AdminRespondToAuthChallenge ](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminRespondToAuthChallenge.html)

Cuando llama a operaciones de API sin autenticar de Amazon Cognito, puede enviar `UserContextData` a la protección contra amenazas de Amazon Cognito. Estos datos incluyen una huella digital de dispositivo en el parámetro `EncodedData`. También puede enviar un parámetro `IpAddress` en su `UserContextData` si cumple las condiciones siguientes:
+ Su grupo de usuarios está incluido en el plan de características Plus. Para obtener más información, consulte [Planes de características de grupo de usuarios](cognito-sign-in-feature-plans.md).
+ El cliente de aplicación tiene un secreto de cliente. Para obtener más información, consulte [Ajustes específicos de una aplicación en los clientes de aplicación](user-pool-settings-client-apps.md).
+ Ha activado **Accept additional user context data** (Aceptar datos de contexto de usuario adicionales) en el cliente de aplicación. Para obtener más información, consulte [Aceptación de datos de contexto de usuario adicionales (Consola de administración de AWS)](#user-pool-settings-adaptive-authentication-accept-user-context-data).

Su aplicación puede rellenar el parámetro `UserContextData` con datos codificados de huellas digitales del dispositivo y la dirección IP del dispositivo del usuario en las siguientes operaciones de API no autenticadas de Amazon Cognito.
+ [InitiateAuth ](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html)
+ [RespondToAuthChallenge ](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RespondToAuthChallenge.html)
+ [SignUp ](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SignUp.html)
+ [ConfirmSignUp ](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmSignUp.html)
+ [ForgotPassword ](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ForgotPassword.html)
+ [ConfirmForgotPassword ](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmForgotPassword.html)
+ [ResendConfirmationCode ](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ResendConfirmationCode.html)

### Aceptación de datos de contexto de usuario adicionales (Consola de administración de AWS)
<a name="user-pool-settings-adaptive-authentication-accept-user-context-data"></a>

El grupo de usuarios acepta una dirección IP en un parámetro `UserContextData` después de activar la característica **Accept additional user context data** (Aceptar datos de contexto de usuario adicionales). No es necesario activar esta característica si:
+ Sus usuarios solo inician sesión con operaciones de API autenticadas, por ejemplo [AdminInitiateAuth ](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html), y usted usa el `ContextData` parámetro.
+ Solo desea que las operaciones de API no autenticadas envíen una huella digital del dispositivo, pero no una dirección IP, a la protección contra amenazas de Amazon Cognito.

Actualice el cliente de aplicación como se indica a continuación en la consola de Amazon Cognito para agregar compatibilidad con datos de contexto de usuario adicionales.

1. Inicie sesión en la [consola de Amazon Cognito](https://console.aws.amazon.com/cognito/home).

1. En el panel de navegación, elija **Manage your User Pools** (Administrar sus grupos de usuarios) y elija el grupo de usuarios que desea editar.

1. Seleccione el menú **Clientes de aplicación**.

1. Elija un cliente de aplicación o cree uno. Para obtener más información, consulte [Configuración de un cliente de aplicación para grupos de usuarios](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-app-idp-settings.html).

1. Elija **Edit (Editar)** desde el contenedor de **App client information (Información del cliente de aplicación)**.

1. En **Advanced authentication settings (Configuración avanzada de autenticación)** del cliente de aplicación, elija **Accept additional user context data (Aceptar datos de contexto de usuario adicionales)**.

1. Seleccione **Save changes (Guardar cambios)**.

Para configurar el cliente de la aplicación para que acepte datos de contexto de usuario en la API de Amazon Cognito, `EnablePropagateAdditionalUserContextData` configúrelo `true` en una solicitud [CreateUserPoolClient](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPoolClient.html)o [UpdateUserPoolClient](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPoolClient.html). Para obtener más información sobre cómo trabajar con la protección contra amenazas en la aplicación web o móvil, consulte [Recopilación de datos para la protección contra amenazas en las aplicaciones](user-pool-settings-viewing-threat-protection-app.md). Recopile los datos contextuales del usuario desde el lado del cliente cuando la aplicación llame a Amazon Cognito desde el servidor. A continuación, se muestra un ejemplo en el que se utiliza el método JavaScript `getData` SDK.

```
var EncodedData = AmazonCognitoAdvancedSecurityData.getData(username, userPoolId, clientId);
```

Cuando diseñe la aplicación para utilizar la autenticación flexible, le recomendamos que incorpore el último SDK de Amazon Cognito a la aplicación. La última versión del SDK recopila la información de las huellas dactilares del dispositivo como el ID, el modelo y la zona horaria del dispositivo. Para obtener más información sobre Amazon Cognito SDKs, consulte [Instalar un SDK de grupo de usuarios](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-sdk-links.html). La protección contra amenazas de Amazon Cognito solo guarda y asigna una puntuación de riesgo a los eventos que la aplicación envía en el formato correcto. Si Amazon Cognito devuelve una respuesta de error, compruebe que la solicitud incluye un hash secreto válido y que el `IPaddress` parámetro es una dirección IPv4 OR IPv6 válida.

**Recursos `ContextData` y `UserContextData`**
+ AWS Amplify SDK para Android: [GetUserContextData](https://github.com/aws-amplify/aws-sdk-android/blob/main/aws-android-sdk-cognitoidentityprovider/src/main/java/com/amazonaws/mobileconnectors/cognitoidentityprovider/CognitoUserPool.java#L626)
+ AWS Amplify SDK para iOS: [userContextData](https://github.com/aws-amplify/aws-sdk-ios/blob/d3cd4fa0086b526f2f5c9c6c58880c9da7004c66/AWSCognitoIdentityProviderASF/AWSCognitoIdentityProviderASF.m#L21)
+ JavaScript: [amazon-cognito-advanced-security-data.min.js](https://amazon-cognito-assets.us-east-1.amazoncognito.com/amazon-cognito-advanced-security-data.min.js)

## Visualización y exportación del historial de eventos de los usuarios
<a name="user-pool-settings-adaptive-authentication-event-user-history"></a>

Amazon Cognito genera un registro por cada evento de autenticación realizado por un usuario cuando se habilita la protección contra amenazas. De forma predeterminada, puede ver los registros de los usuarios en el menú **Usuarios** de la consola de Amazon Cognito o mediante la operación de la [AdminListUserAuthEvents](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminListUserAuthEvents.html)API. También puede exportar estos eventos a un sistema externo como CloudWatch Logs, Amazon S3 o Amazon Data Firehose. La característica de exportación hace que la información de seguridad sobre la actividad de los usuarios en la aplicación sea más accesible a sus propios sistemas de análisis de seguridad.

**Topics**
+ [Visualización del historial de eventos de los usuarios (Consola de administración de AWS)](#user-pool-settings-adaptive-authentication-event-user-history-console)
+ [Visualización del historial de eventos de los usuarios (API/CLI)](#user-pool-settings-adaptive-authentication-event-user-history-api-cli)
+ [Exportación de eventos de autenticación de usuarios](#user-pool-settings-adaptive-authentication-event-user-history-exporting)

### Visualización del historial de eventos de los usuarios (Consola de administración de AWS)
<a name="user-pool-settings-adaptive-authentication-event-user-history-console"></a>

Para ver el historial de inicios de sesión de un usuario, puede elegir el usuario en el menú **Usuarios** en la consola de Amazon Cognito. Amazon Cognito conserva el historial de eventos del usuario durante de dos años.

![\[Historial de eventos del usuario\]](http://docs.aws.amazon.com/es_es/cognito/latest/developerguide/images/cup-advanced-security-event-history.png)


Cada evento de inicio de sesión tiene un ID de evento. El evento también tiene los datos contextuales correspondientes, como la ubicación, los detalles del dispositivo y los resultados de detección de riesgos.

También puede correlacionar el ID de evento con el token que Amazon Cognito emitió en el momento en que registró el evento. El ID y los tokens de acceso incluyen este ID de evento en su carga. Amazon Cognito también correlaciona el uso de tokens de actualización con el ID de evento original. El ID de evento original permite localizar el ID de evento del inicio de sesión que dio lugar a la emisión de los tokens de Amazon Cognito. Esto le permite realizar un seguimiento del uso de un token en su sistema hasta un evento de autenticación en concreto. Para obtener más información, consulte [Descripción de los tokens web JSON para grupos de usuarios (JWTs)](amazon-cognito-user-pools-using-tokens-with-identity-providers.md).

### Visualización del historial de eventos de los usuarios (API/CLI)
<a name="user-pool-settings-adaptive-authentication-event-user-history-api-cli"></a>

[Puede consultar el historial de eventos del usuario con la operación de la API de Amazon Cognito [AdminListUserAuthEvents](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminListUserAuthEvents.html)o con AWS Command Line Interface (AWS CLI) con admin-list-user-auth -events.](https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/admin-list-user-auth-events.html)

------
#### [ AdminListUserAuthEvents request ]

El siguiente cuerpo de la solicitud de `AdminListUserAuthEvents` devuelve el registro de actividad más reciente de un usuario.

```
{
  "UserPoolId": "us-west-2_EXAMPLE", 
  "Username": "myexampleuser", 
  "MaxResults": 1
}
```

------
#### [ admin-list-user-auth-events request ]

La siguiente solicitud de `admin-list-user-auth-events` devuelve el registro de actividad más reciente de un usuario.

```
aws cognito-idp admin-list-user-auth-events --max-results 1 --username myexampleuser --user-pool-id us-west-2_EXAMPLE
```

------
#### [ Response ]

Amazon Cognito devuelve el mismo cuerpo de respuesta JSON a ambas solicitudes. El siguiente es un ejemplo de respuesta para un evento de inicio de sesión en el inicio de sesión administrado que no contenía factores de riesgo:

```
{
    "AuthEvents": [
        {
            "EventId": "[event ID]",
            "EventType": "SignIn",
            "CreationDate": "[Timestamp]",
            "EventResponse": "Pass",
            "EventRisk": {
                "RiskDecision": "NoRisk",
                "CompromisedCredentialsDetected": false
            },
            "ChallengeResponses": [
                {
                    "ChallengeName": "Password",
                    "ChallengeResponse": "Success"
                }
            ],
            "EventContextData": {
                "IpAddress": "192.168.2.1",
                "DeviceName": "Chrome 125, Windows 10",
                "Timezone": "-07:00",
                "City": "Bellevue",
                "Country": "United States"
            }
        }
    ],
    "NextToken": "[event ID]#[Timestamp]"
}
```

------

### Exportación de eventos de autenticación de usuarios
<a name="user-pool-settings-adaptive-authentication-event-user-history-exporting"></a>

Configure el grupo de usuarios para exportar eventos de los usuarios desde la protección contra amenazas hasta un sistema externo. Los sistemas externos compatibles (Amazon S3, CloudWatch Logs y Amazon Data Firehose) pueden añadir costes a su AWS factura por los datos que envíe o recupere. Para obtener más información, consulte [Exportación de los registros de actividad de los usuarios en la protección contra amenazas](exporting-quotas-and-usage.md#exporting-quotas-and-usage-user-activity).

------
#### [ Consola de administración de AWS ]

1. Inicie sesión en la [consola de Amazon Cognito](https://console.aws.amazon.com/cognito/home).

1. Elija **User Pools** (Grupos de usuarios).

1. Elija un grupo de usuarios existente en la lista o [cree un grupo de usuarios](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html).

1. Seleccione el menú **Registrar la transmisión**. Seleccione **Editar**.

1. En **Estado de registro**, seleccione la casilla de verificación situada junto a **Activar la exportación del registro de actividad del usuario**.

1. En **Destino del registro**, elige el Servicio de AWS que quieres que gestione tus registros: **grupo de CloudWatch registros**, transmisión de **Amazon Data Firehose** o **bucket de S3**.

1. La opción que elija rellenará el selector de recursos con el tipo de recurso correspondiente. Seleccione un grupo de registro, un flujo o un bucket de la lista. También puede seleccionar el botón **Crear** Consola de administración de AWS para ir al servicio seleccionado y crear un recurso nuevo.

1. Seleccione **Guardar cambios**.

------
#### [ API ]

Elija un tipo de destino para los registros de actividad de los usuarios.

A continuación se muestra un ejemplo de cuerpo de solicitud `SetLogDeliveryConfiguration` que establece un flujo de Firehose como destino del registro.

```
{
   "LogConfigurations": [
      {
         "EventSource": "userAuthEvents",
         "FirehoseConfiguration": {
            "StreamArn": "arn:aws:firehose:us-west-2:123456789012:deliverystream/example-user-pool-activity-exported"
         },
         "LogLevel": "INFO"
      }
   ],
   "UserPoolId": "us-west-2_EXAMPLE"
}
```

A continuación se muestra un ejemplo de cuerpo de solicitud `SetLogDeliveryConfiguration` que establece un bucket de Amazon S3 como destino del registro.

```
{
   "LogConfigurations": [
      {
         "EventSource": "userAuthEvents",
         "S3Configuration": { 
            "BucketArn": "arn:aws:s3:::amzn-s3-demo-logging-bucket"
         },
         "LogLevel": "INFO"
      }
   ],
   "UserPoolId": "us-west-2_EXAMPLE"
}
```

A continuación, se muestra un ejemplo del cuerpo de una `SetLogDeliveryConfiguration` solicitud que establece un grupo de CloudWatch registros como destino del registro.

```
{
   "LogConfigurations": [
      {
         "EventSource": "userAuthEvents",
         "CloudWatchLogsConfiguration": { 
            "LogGroupArn": "arn:aws:logs:us-west-2:123456789012:log-group:DOC-EXAMPLE-LOG-GROUP"
         },
         "LogLevel": "INFO"
      }
   ],
   "UserPoolId": "us-west-2_EXAMPLE"
}
```

------

## Suministro de comentarios sobre los eventos
<a name="user-pool-settings-adaptive-authentication-feedback"></a>

Los comentarios sobre los eventos afectan a la evaluación de riesgos en tiempo real y mejoran el algoritmo de evaluación de riesgos a lo largo del tiempo. Puede proporcionar comentarios sobre la validez de los intentos de inicio de sesión a través de las operaciones de API y la consola de Amazon Cognito. 

**nota**  
Sus comentarios sobre el evento influyen en el nivel de riesgo que Amazon Cognito asigna a las sesiones de usuario posteriores con las mismas características.

En la consola de Amazon Cognito, elija un usuario en la pestaña **Usuarios** y seleccione **Proporcionar comentarios sobre el evento**. Puede revisar los detalles del evento y marcar **Set as valid** (Establecer como válido) o **Set as invalid** (Establecer como no válido).

La consola enumera el historial de inicios de sesión en los detalles del usuario en el menú **Usuarios**. Si selecciona una entrada, puede marcar el evento como válido o no válido. También puedes enviar comentarios a través de la operación [AdminUpdateAuthEventFeedback](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUpdateAuthEventFeedback.html)de la API del grupo de usuarios y mediante el AWS CLI comando [admin-update-auth-event-feedback](https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/admin-update-auth-event-feedback.html). 

Al seleccionar **Set as valid** (Establecer como válido) en la consola de Amazon Cognito o proporcionar un valor `FeedbackValue` de `valid` en la API, le está indicando a Amazon Cognito que confía en una sesión de usuario en la que Amazon Cognito ha determinado que hay cierto nivel de riesgo. Al seleccionar **Set as invalid** (Definir como no válido) en la consola de Amazon Cognito o proporcionar un valor `FeedbackValue` de `invalid` en la API, le está indicando a Amazon Cognito que no confía en una sesión de usuario o no cree que Amazon Cognito haya determinado que tiene un nivel de riesgo suficiente.

## Envío de mensajes de notificación
<a name="user-pool-settings-adaptive-authentication-messages"></a>

Con la protección contra amenazas, Amazon Cognito puede notificar a los usuarios los intentos de inicio de sesión de riesgo. Amazon Cognito también puede solicitar a los usuarios que seleccionen enlaces para indicar si el inicio de sesión es válido o no. Amazon Cognito utiliza estos comentarios para mejorar la precisión de la detección de riesgos de su grupo de usuarios. 

**nota**  
Amazon Cognito solo envía mensajes de notificación a los usuarios cuando su acción genera una respuesta automática al riesgo: bloquear el inicio de sesión, permitir el inicio de sesión, configurar la MFA como opcional o requerir la MFA. Es posible que a algunas solicitudes se les asigne un nivel de riesgo, pero que no generen respuestas de riesgo automatizadas con autenticación flexible; en este caso, su grupo de usuarios no envía notificaciones. Por ejemplo, es posible que se registren contraseñas incorrectas con una clasificación de riesgo y que la respuesta de Amazon Cognito consista en no efectuar el inicio de sesión, no en aplicar una regla de autenticación flexible.

En la sección **Automatic risk response** (Respuesta automática al riesgo) elija **Notify Users** (Notificar a los usuarios) para los casos de riesgo bajo, medio y alto.

![\[Notificación a los usuarios\]](http://docs.aws.amazon.com/es_es/cognito/latest/developerguide/images/cup-adaptive-auth.png)


Amazon Cognito envía notificaciones por correo electrónico a sus usuarios independientemente de si han verificado su dirección de correo electrónico.

Puede personalizar los mensajes de correo electrónico de notificación y proporcionar versiones de texto sin formato y HTML de dichos mensajes. Para personalizar las notificaciones por correo electrónico, abra **Plantillas de correo electrónico** desde **Mensajes de autenticación flexible** en su configuración de protección contra amenazas. Para obtener más información sobre las plantillas de correo electrónico, consulte [Plantillas de mensaje](cognito-user-pool-settings-message-customizations.md#cognito-user-pool-settings-message-templates).

# Recopilación de datos para la protección contra amenazas en las aplicaciones
<a name="user-pool-settings-viewing-threat-protection-app"></a>

La [autenticación flexible](cognito-user-pool-settings-adaptive-authentication.md) de Amazon Cognito evalúa los niveles de riesgo de los intentos de apropiación de cuentas a partir de los detalles contextuales de los intentos de inicio de sesión de los usuarios. La aplicación debe añadir *datos de contexto* a las solicitudes de la API para que la protección contra amenazas de Amazon Cognito pueda evaluar el riesgo con más precisión. Los datos de contexto son información como la dirección IP, el agente del navegador, la información del dispositivo y los encabezados de las solicitudes que proporcionan información contextual sobre cómo se ha conectado un usuario al grupo de usuarios.

La responsabilidad principal de una aplicación que envía este contexto a Amazon Cognito es un parámetro `EncodedData` en las solicitudes de autenticación a grupos de usuarios. Para añadir estos datos a sus solicitudes, puede implementar Amazon Cognito con un SDK que genere automáticamente esta información por usted, o puede implementar un módulo para JavaScript iOS o Android que recopile estos datos. Deben *implementarse las aplicaciones exclusivas para clientes* que realizan solicitudes directas a Amazon Cognito. AWS Amplify SDKs Las aplicaciones *cliente-servidor* que tienen un componente de servidor o API intermedio deben implementar un módulo de SDK independiente.

En las siguientes situaciones, la interfaz de autenticación administra la recopilación de datos del contexto del usuario sin ninguna configuración adicional:
+ El inicio de sesión administrado recopila y envía automáticamente los datos de contexto al sistema de protección contra amenazas.
+ Todas las AWS Amplify bibliotecas incluyen la recopilación de datos contextuales en sus métodos de autenticación.

## Envío de datos de contexto de usuario en aplicaciones exclusivas para clientes con Amplify
<a name="user-pool-settings-viewing-threat-protection-app-amplify"></a>

![\[Descripción general de la recopilación de datos para la protección contra amenazas en una aplicación Amplify.\]](http://docs.aws.amazon.com/es_es/cognito/latest/developerguide/images/user-pools-asf-amplify-data-collection.png)


Amplify SDKs apoya a los clientes móviles que se autentican directamente con Amazon Cognito. Los clientes de este tipo realizan solicitudes de API directas a las operaciones de API públicas de Amazon Cognito. Los clientes de Amplify recopilan automáticamente datos de contexto para protección contra amenazas de forma predeterminada.

Amplify las aplicaciones con es una JavaScript excepción. Requieren la adición de un [JavaScript módulo](#user-pool-settings-viewing-threat-protection-app-additional-resources-js) que recopile datos de contexto del usuario.

Por lo general, una aplicación en esta configuración utiliza operaciones de API no autenticadas, como [InitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html)y. [RespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RespondToAuthChallenge.html) El [UserContextData](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UserContextDataType.html)objeto ayuda a evaluar los riesgos de estas operaciones con mayor precisión. Amplify SDKs agrega información sobre el dispositivo y la sesión a un `EncodedData` parámetro de. `UserContextData`

## Recopilación de datos de contexto en aplicaciones cliente-servidor
<a name="user-pool-settings-viewing-threat-protection-app-server-side"></a>

Algunas aplicaciones tienen un nivel frontend que recopila los datos de autenticación de los usuarios y un nivel backend de aplicaciones que envía las solicitudes de autenticación a Amazon Cognito. Se trata de una arquitectura común en los servidores web y las aplicaciones respaldadas por microservicios. En estas aplicaciones, debe importar una biblioteca pública de recopilación de datos contextuales.

![\[Una descripción general de la autenticación del lado del servidor con datos contextuales de protección contra amenazas en. JavaScript\]](http://docs.aws.amazon.com/es_es/cognito/latest/developerguide/images/user-pools-asf-non-amplify-data-collection.png)


Normalmente, un servidor de aplicaciones en esta configuración utiliza operaciones de API autenticadas, como y. [AdminInitiateAuth[AdminRespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminRespondToAuthChallenge.html)](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html) El [ContextData](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html#CognitoUserPools-AdminInitiateAuth-request-ContextData)objeto ayuda a Amazon Cognito a evaluar los riesgos de estas operaciones con mayor precisión. El contenido de `ContextData` son los datos codificados que el frontend ha pasado al servidor y detalles adicionales de la solicitud HTTP del usuario al servidor. Estos detalles contextuales adicionales, como los encabezados HTTP y la dirección IP, proporcionan al servidor de aplicaciones las características del entorno del usuario.

Es posible que su servidor de aplicaciones también inicie sesión con operaciones de API no autenticadas, como y. [InitiateAuth[RespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RespondToAuthChallenge.html)](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html) El [UserContextData](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html#CognitoUserPools-InitiateAuth-request-UserContextData)objeto sirve de base para el análisis de riesgos de protección contra amenazas en estas operaciones. Las operaciones de las bibliotecas de recopilación de datos de contexto público disponibles añaden información de seguridad al parámetro `EncodedData` en las solicitudes de autenticación. Además, debe configurar el grupo de usuarios para que acepte datos de contexto adicionales y añada la IP de origen del usuario al parámetro `IpAddress` de `UserContextData`.

**Adición de datos de contexto en aplicaciones cliente-servidor**

1. En su aplicación front-end, recopile datos de contexto codificados del cliente con un [ JavaScript módulo, iOS o Android](#user-pool-settings-viewing-threat-protection-app-additional-resources).

1. Transfiera los datos codificados y los detalles de la solicitud de autenticación al servidor de aplicaciones.

1. En el servidor de aplicaciones, extraiga de la solicitud HTTP la dirección IP del usuario, los encabezados HTTP pertinentes, el nombre del servidor solicitado y la ruta solicitada. Rellene estos valores con el [ContextData](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html#CognitoUserPools-AdminInitiateAuth-request-ContextData)parámetro de su solicitud de API a Amazon Cognito.

1. Rellene el parámetro `EncodedData` de `ContextData` en la solicitud de API con los datos codificados del dispositivo que el módulo del SKD ha recopilado. Añada estos datos de contexto a la solicitud de autenticación.

## Bibliotecas de datos contextuales para aplicaciones cliente-servidor
<a name="user-pool-settings-viewing-threat-protection-app-additional-resources"></a>

### JavaScript
<a name="user-pool-settings-viewing-threat-protection-app-additional-resources-js"></a>

El módulo `amazon-cognito-advanced-security-data.min.js` recopila los `EncodedData` que puede transferir al servidor de aplicaciones.

Añada el `amazon-cognito-advanced-security-data.min.js` módulo a su configuración. JavaScript `<region>`Sustitúyalo por uno Región de AWS de la siguiente lista: `us-east-1` `us-east-2``us-west-2`,`eu-west-1`,,`eu-west-2`, o`eu-central-1`.

```
<script src="https://amazon-cognito-assets.<region>.amazoncognito.com/amazon-cognito-advanced-security-data.min.js"></script>
```

Para generar un `encodedContextData` objeto que pueda usar en el `EncodedData` parámetro, añada lo siguiente a la fuente de JavaScript la aplicación:

```
var encodedContextData = AmazonCognitoAdvancedSecurityData.getData(_username, _userpoolId, _userPoolClientId);
```

### iOS/Swift
<a name="user-pool-settings-viewing-threat-protection-app-additional-resources-ios"></a>

Para generar datos de contexto, las aplicaciones iOS pueden integrar el módulo [AWSCognitoIdentityProviderASF](https://github.com/aws-amplify/aws-sdk-ios/tree/main/AWSCognitoIdentityProviderASF) de [Mobile SDK for iOS](https://github.com/aws-amplify/aws-sdk-ios/tree/main).

A fin de recopilar datos contextuales codificados para la protección contra amenazas, añada el siguiente fragmento a la aplicación:

```
import AWSCognitoIdentityProviderASF

let deviceId = getDeviceId()
let encodedContextData = AWSCognitoIdentityProviderASF.userContextData(
                            userPoolId, 
                            username: username, 
                            deviceId: deviceId, 
                            userPoolClientId: userPoolClientId)
                                
/**
 * Reuse DeviceId from keychain or generate one for the first time.
 */
func getDeviceId() -> String {
    let deviceIdKey = getKeyChainKey(namespace: userPoolId, key: "AWSCognitoAuthAsfDeviceId")
    
   if let existingDeviceId = self.keychain.string(forKey: deviceIdKey) {
        return existingDeviceId
    }

    let newDeviceId = UUID().uuidString
    self.keychain.setString(newDeviceId, forKey: deviceIdKey)
    return newDeviceId
}

/**
 * Get a namespaced keychain key given a namespace and key
 */    
func getKeyChainKey(namespace: String, key: String) -> String {
    return "\(namespace).\(key)"
}
```

### Android
<a name="user-pool-settings-viewing-threat-protection-app-additional-resources-android"></a>

Para generar datos de contexto, las aplicaciones de Android pueden integrar el módulo [Mobile SDK for Android aws-android-sdk-cognitoidentityprovider](https://github.com/aws-amplify/aws-sdk-android/tree/main) [-asf](https://github.com/aws-amplify/aws-sdk-android/tree/main/aws-android-sdk-cognitoidentityprovider-asf).

A fin de recopilar datos contextuales codificados para la protección contra amenazas, añada el siguiente fragmento a la aplicación:

```
UserContextDataProvider provider = UserContextDataProvider.getInstance();
// context here is android application context.
String encodedContextData = provider.getEncodedContextData(context, username, userPoolId, userPoolClientId);
```