Habilitar la protección de la enumeración de correo electrónico

En esta guía, se muestra cómo habilitar la protección de enumeración de correo electrónico.

Descripción general

La enumeración de correo electrónico es un tipo de ataque de fuerza bruta en el que un agente malicioso intenta adivinar o confirmar a los usuarios en un sistema mediante el paso de una dirección de correo electrónico a la API y la comprobación de la respuesta.

En los siguientes ejemplos, la protección de enumeración de correo electrónico está inhabilitada. Identity Platform muestra información que se puede usar en un ataque de enumeración de correo electrónico:

  • Se intenta acceder con una dirección de correo electrónico que no existe en el sistema. Identity Platform muestra un error EMAIL_NOT_FOUND.

  • Se intenta registrarse con una dirección de correo electrónico que ya existe en el sistema. Identity Platform muestra un error EMAIL_EXISTS.

Puedes usar la función de protección de enumeración de correo electrónico de Identity Platform para proteger las cuentas de usuario de tu app contra estos ataques. La protección de la enumeración de correo electrónico ofrece las siguientes funciones:

  • Los casos de acceso y registro no válidos muestran una respuesta de error INVALID_LOGIN_CREDENTIALS.
  • Quita las respuestas de error de los flujos de verificación por correo electrónico. Si la dirección de correo electrónico existe, se envía un mensaje de verificación. Si no existe, no se enviará un mensaje de verificación.
  • Inhabilita la capacidad de los usuarios de cambiar su dirección de correo electrónico sin verificar primero la nueva dirección.
  • Inhabilita la lista de métodos de acceso para una dirección de correo electrónico especificada cuando se llama a createAuthUri.

Habilitar la protección de la enumeración de correo electrónico

Para habilitar la protección de la enumeración de correo electrónico, sigue estos pasos:

  1. En Google Cloud Console, imprime un token de acceso para el ID del proyecto con el comando gcloud auth print-access-token:

    gcloud auth print-access-token --project=PROJECT_ID
    
  2. Habilita la protección de la enumeración de correo electrónico para el ID de tu proyecto con la API de Identity Toolkit:

    curl -X PATCH -d "{'email_privacy_config':{'enable_improved_email_privacy':"true"}}" \
        -H 'Authorization: Bearer ACCESS_TOKEN' \
        -H 'Content-Type: application/json' \
        "https://identitytoolkit.googleapis.com/admin/v2/projects/PROJECT_ID/config?updateMask=email_privacy_config"
    

Reemplaza lo siguiente:

  • ACCESS_TOKEN: Es el token de acceso que generaste antes.
  • PROJECT_ID: El ID de tu proyecto

Inhabilitar la protección de la enumeración de correo electrónico

Para inhabilitar la protección de enumeración de correo electrónico, sigue estos pasos:

  1. En Google Cloud Console, imprime un token de acceso para el ID del proyecto con el comando gcloud auth print-access-token:

    gcloud auth print-access-token --project=PROJECT_ID
    
  2. Inhabilita la protección de enumeración de correo electrónico con la API de Identity Toolkit:

    curl -X PATCH -d "{'email_privacy_config':{'enable_improved_email_privacy':"false"}}" \
        -H 'Authorization: Bearer ACCESS_TOKEN' \
        -H 'Content-Type: application/json' \
        "https://identitytoolkit.googleapis.com/admin/v2/projects/PROJECT_ID/config?updateMask=email_privacy_config"
    

Reemplaza lo siguiente:

  • ACCESS_TOKEN: Es el token de acceso que generaste antes.
  • PROJECT_ID: El ID de tu proyecto

Ejemplo de una respuesta de error

Si un usuario intenta acceder con una dirección de correo electrónico o una contraseña incorrectas, o con una dirección de correo electrónico que ya existe en el sistema, Identity Platform muestra un error similar al siguiente:

{
  "code": "auth/internal-error",
  "message": "{\"error\":{\"code\":400,\"message\":\"INVALID_LOGIN_CREDENTIALS\",\"errors\":[{\"message\":\"INVALID_LOGIN_CREDENTIALS\",\"domain\":\"global\",\"reason\":\"invalid\"}]}}"
}