# Seguridad de la cuenta

> Protege tu acceso al panel con la verificación en dos pasos: apps de autenticación, passkeys o llaves de seguridad, códigos de recuperación y una política de organización.

Para entrar en el panel empiezas con un código por correo o con tu cuenta de Google o GitHub (consulta
[Crear una cuenta](https://developers.openwaf.dev/es/fundamentals/create-account/)). La **verificación en dos pasos** (2FA) añade un segundo paso: tras ese
primer acceso, el panel te pide además un código de una app de autenticación o una de tus passkeys o llaves de
seguridad. Aunque alguien entre en tu correo o en tu cuenta de Google o GitHub, seguirá sin poder abrir tus
organizaciones.

Se gestiona en **Cuenta › Seguridad** (`/profile/security` en el panel). Los propietarios y administradores de una organización pueden además
[exigir la 2FA](#require-2fa) a todos sus miembros.

## Segundos factores

| Factor | Qué es | Notas |
|---|---|---|
| **App de autenticación** (TOTP) | Un código de 6 cifras que cambia cada 30 segundos, de una app como 1Password, Google Authenticator, Microsoft Authenticator o Aegis | Una app por cuenta. Cada código sirve una sola vez. |
| **Passkey o llave de seguridad** (WebAuthn) | Una passkey guardada en tu móvil, tu ordenador o tu gestor de contraseñas, o una llave de seguridad física | Puedes registrar varias y ponerle nombre a cada una. Una passkey también puede [darte acceso por sí sola](#passkey-sign-in). |
| **Códigos de recuperación** | 10 códigos de un solo uso con el formato `xxxxx-xxxxx` | Se crean con tu primer factor y solo se muestran una vez. Guárdalos fuera de línea, por ejemplo en un gestor de contraseñas o en papel. |

La 2FA queda **activada** en cuanto tienes una app de autenticación confirmada o al menos una passkey o llave de
seguridad. Te recomendamos registrar dos factores (por ejemplo, una app y una llave de seguridad, o passkeys en dos
dispositivos) para que perder un dispositivo no te deje fuera.

> **Nota**
>
> Las passkeys y las llaves de seguridad pertenecen a la dirección del panel en la que las registras. Una registrada en
> `dash.openwaf.dev` no sirve en un [panel de marca blanca](https://developers.openwaf.dev/es/fundamentals/white-label/) como `dash.tuagencia.com`, ni al
> revés: registra una en cada dirección que uses. Las apps de autenticación y los códigos de recuperación sirven en todas.


## Activar la verificación en dos pasos

1. Abre **Cuenta › Seguridad**.
2. Añade un primer factor:
   - **App de autenticación**: escanea el código QR con la app (o escribe el secreto que aparece) y confírmalo con el
     código de 6 cifras que muestra la app.
   - **Passkey o llave de seguridad**: ponle un nombre (de 1 a 64 caracteres, por ejemplo «Portátil del trabajo») y
     sigue las indicaciones del navegador.
3. Guarda los **10 códigos de recuperación** que muestra el panel. No se vuelven a mostrar.


Al activar la 2FA se cierran todas tus **otras** sesiones, en todos los dispositivos; la sesión que estás usando sigue
abierta. Para añadir más factores después, con la 2FA ya activada, el panel te pide antes
[confirmar que eres tú](#step-up).

## Entrar con 2FA

Después del código por correo, del enlace del correo o de Google/GitHub, el panel muestra un segundo paso con los
factores que tienes: un código de tu app, una passkey o llave de seguridad, o un código de recuperación. Hasta que lo
completas, la sesión no puede hacer nada más: ni siquiera se listan tus organizaciones.

- **Recordar este dispositivo**: márcalo en el segundo paso para saltártelo en este navegador durante **30 días**. El
  siguiente acceso sigue empezando por el código por correo o Google/GitHub. Quitar un factor, desactivar la 2FA, un
  [restablecimiento por soporte](#lost-device) y **Cerrar todas las sesiones** olvidan todos los dispositivos
  recordados; también puedes olvidarlos tú en **Cuenta › Seguridad**. Las cuentas de los operadores de la plataforma
  OpenWAF nunca se saltan el segundo paso.
- **Bloqueo**: 5 intentos fallidos seguidos, con cualquier factor, bloquean el segundo paso durante 15 minutos. Es un
  intento fallido un código de la app erróneo o ya usado, un código de recuperación erróneo o ya usado, o una passkey o
  llave de seguridad cuya firma no se verifica. Cancelar el aviso de passkey del navegador no cuenta. Cada código
  erróneo indica cuántos intentos quedan.
- Al usar un código de recuperación verás cuántos te quedan. Genera un juego nuevo antes de agotarlos.

## Entrar con una passkey

En la página de acceso, **Entrar con una passkey** te da acceso solo con una passkey, sin código por correo. El
navegador te ofrece las passkeys que registraste en esa dirección del panel y te pide desbloquearlas (huella, cara, PIN
o la contraseña del dispositivo). Como una passkey demuestra a la vez que tienes el dispositivo y que lo has
desbloqueado, este acceso ya cuenta como verificación en dos pasos.

El botón solo aparece en navegadores compatibles con passkeys. Una llave de seguridad que no sea una passkey
detectable se puede seguir usando como segundo paso después de un código por correo.

## Confirmar que eres tú

Algunas acciones necesitan una confirmación reciente, aunque la sesión ya esté abierta: si no has confirmado tu
identidad en los últimos **10 minutos**, el panel te pide **confirmar que eres tú** y después continúa con la acción.
Confirmas con uno de tus factores o, si no usas la 2FA, con un código que te llega al correo.

| Acción | Dónde |
|---|---|
| Crear un token de API | **Tokens de API** |
| Cambiar el rol de un miembro | **Miembros** |
| Añadir o invitar a un miembro como **Propietario** o **Administrador** | **Miembros** |
| Borrar un dominio | Ajustes del dominio |
| Cambiar los ajustes de la organización | Ajustes de la organización |
| Activar o desactivar [Exigir 2FA](#require-2fa) | Ajustes de la organización |
| Borrar tu cuenta | **Cuenta** |
| Desactivar la 2FA, quitar un factor, generar códigos de recuperación nuevos o añadir un factor con la 2FA ya activada | **Cuenta › Seguridad** |

Entrar con un [dispositivo recordado](#sign-in) no cuenta como confirmación, así que estas acciones siguen pidiendo un
factor. La confirmación solo se aplica a las sesiones del panel: los [tokens de API](https://developers.openwaf.dev/es/fundamentals/api-tokens/) y las
conexiones MCP nunca la piden.

## Exigir la 2FA en una organización

Los propietarios y administradores pueden exigir la verificación en dos pasos a todos los miembros desde los ajustes de
la organización. Para activarlo necesitas tener la 2FA en tu propia cuenta, y el cambio te pide
[confirmar que eres tú](#step-up).

Mientras la política está activa:

- Un miembro sin 2FA que abre la organización va a **Cuenta › Seguridad** para configurarla antes de poder hacer nada en
  ella. Sus otras organizaciones siguen funcionando.
- Un miembro que entra mientras la política le aplica debe añadir un factor antes que nada; en cuanto lo confirma, la
  sesión continúa sin volver a entrar.
- Los miembros no pueden desactivar la 2FA, ni quitar su último factor, mientras una organización a la que pertenecen la
  exija.
- **Miembros** muestra quién tiene la 2FA activada, para que puedas avisar a quien aún no la haya configurado.

Activar o desactivar la política queda en el registro de auditoría como `org.2fa_policy`. La política se aplica también a
las sesiones ya abiertas: su siguiente petición en la organización lleva a configurar la 2FA, sin volver a entrar. Las
cuentas de los operadores de la plataforma OpenWAF siempre necesitan 2FA, decidan lo que decidan sus organizaciones; una
sesión de operador abierta antes de que la cuenta tuviera 2FA también lleva a configurarla en su siguiente petición.

## Las conexiones MCP necesitan 2FA

Para dar acceso a un asistente de IA mediante [OAuth](https://developers.openwaf.dev/es/mcp/oauth-and-tokens/#connecting-with-oauth) hace falta una
sesión que haya superado la verificación en dos pasos. Si tu cuenta aún no tiene 2FA, el panel te pide activarla antes
de mostrar la pantalla de permiso. Los clientes MCP que usan un token de API no se ven afectados.

## Los tokens de API no cambian

La 2FA protege el acceso al panel. Los [tokens de API](https://developers.openwaf.dev/es/fundamentals/api-tokens/) (`owf_…`) y las conexiones MCP por
OAuth ya existentes siguen funcionando igual, y la política de exigir 2FA no los bloquea: tienen su propio rol, alcance y
caducidad. Crear un token nuevo desde el panel te pide [confirmar que eres tú](#step-up). Revoca en **Tokens de API**
los que ya no necesites.

## Gestionar tus factores y sesiones

En **Cuenta › Seguridad** puedes:

- Renombrar o quitar passkeys y llaves de seguridad, y quitar la app de autenticación (para pasarla a un móvil nuevo,
  quítala y vuelve a añadirla).
- Generar un juego nuevo de códigos de recuperación; los anteriores dejan de funcionar al instante.
- Desactivar la 2FA, lo que quita todos los factores, los códigos de recuperación y los dispositivos recordados. No es
  posible mientras se te exija la 2FA.
- Olvidar todos los dispositivos recordados.
- Ver tus sesiones abiertas (método de acceso, dirección IP, navegador, cuándo empezaron y cuándo se usaron por última
  vez) y cerrar cualquiera de ellas.

Cada cambio queda en el registro de auditoría de todas las organizaciones a las que perteneces:

| Acción | Significado |
|---|---|
| `user.2fa.enable`, `user.2fa.disable` | 2FA activada o desactivada |
| `user.2fa.factor_add`, `user.2fa.factor_remove` | Una app de autenticación, passkey o llave de seguridad añadida o quitada |
| `user.2fa.verify_fail`, `user.2fa.lockout` | Un código erróneo en el segundo paso, y el bloqueo de 15 minutos |
| `user.2fa.recovery_used`, `user.2fa.recovery_regenerate` | Un código de recuperación usado, o un juego nuevo generado |
| `user.2fa.reset` | Factores quitados por el soporte de OpenWAF (ver más abajo) |

## Si pierdes tu dispositivo

1. **Usa un código de recuperación.** En el segundo paso, elige la opción de código de recuperación e introduce uno de tus
   códigos. Después, en **Cuenta › Seguridad**, quita el factor perdido, añade uno nuevo y genera códigos de
   recuperación nuevos.
2. **Usa otro factor.** Cualquier otra passkey, llave de seguridad o la app de autenticación que registraste también
   sirve.
3. **Contacta con soporte.** Si no te queda ningún factor ni código de recuperación, escribe a
   [support@openwaf.dev](mailto:support@openwaf.dev) desde la dirección de correo de tu cuenta.


El soporte solo restablece la verificación en dos pasos después de verificar tu identidad. Podemos pedirte datos que
solo conoce el titular de la cuenta y, si perteneces a una organización con otros propietarios o administradores,
pedirle a uno de ellos que confirme la solicitud. El restablecimiento quita todos los factores, códigos de recuperación
y dispositivos recordados, cierra todas tus sesiones en todos los dispositivos y queda registrado como `user.2fa.reset`,
con el motivo, en el registro de auditoría de todas las organizaciones a las que perteneces. Después vuelves a entrar y
configuras la 2FA desde cero; si una organización la exige, tendrás que hacerlo antes de trabajar en ella.

> **Atención**
>
> El soporte nunca te pedirá tus códigos de acceso, tus códigos de recuperación ni los secretos de tu app de
> autenticación. No se los des a nadie.
