Dinoer

El objetivo pide un segundo factor

Dos maneras de superar una petición de doble autenticación según de dónde venga el código, por qué se rechaza un código escrito en el escenario, y el caso que ninguna cubre: la activación.

La situación. El inicio de sesión funciona y luego el objetivo pide un código de seis cifras. De dónde viene ese código decide el camino.

El código se genera a partir de una semilla que usted tiene

TOTP estándar, el que genera una aplicación de autenticación. Si la semilla en base32 está guardada en el archivo de credenciales bajo totp_cle, Dinoer calcula él mismo el código vigente:

{"type": "remplir", "selecteur": "input[name=\"otp\"]",
 "valeur": "depuis_secrets_totp"}

Nadie tiene que escribir nada ni vigilar el reloj. La semilla se queda en el directorio cifrado, y el código lo calcula Dinoer, no la página.

Use este camino siempre que sea posible.

El código se le envía a usted

Por SMS, por correo, en una aplicación: Dinoer no puede generarlo. attendre_mfa_ntfy publica un aviso de espera en su topic de ntfy (la clave ntfy_topic del archivo de credenciales), espera a que usted envíe allí el código y después lo escribe en el campo. No envía el formulario: añada el clic que sigue.

[
  {"type": "cliquer", "selecteur": "#send-code"},
  {"type": "attendre_mfa_ntfy", "selecteur": "input[name=\"otp\"]", "timeout": 120},
  {"type": "cliquer", "selecteur": "#confirm"}
]

timeout es la espera en segundos, 120 por defecto. Solo un mensaje de 4 a 8 cifras se toma como código; cualquier otro mensaje en el topic se ignora.

Un código escrito en el escenario se rechaza

{"type": "remplir", "selecteur": "input[name=\"otp\"]", "valeur": "123456"}

Dinoer rechaza este escenario antes de arrancar el navegador: un selector que contiene otp, totp, mfa o 2fa se trata como un campo sensible, y su valor tiene que venir de depuis_secrets o de depuis_secrets_totp. Si una persona tiene que leer el código, el camino anterior es el adecuado: esa persona lo envía al topic.

El caso que ninguno cubre

La activación: el primer código de todos, en el momento en que se crea la semilla.

Cuando activa la doble autenticación, el servidor genera la semilla y la muestra una sola vez. En ese momento no existe en ningún otro sitio: ni en su archivo de credenciales, ni en un topic. depuis_secrets_totp no tiene nada que leer.

Dinoer no tiene ninguna acción para este paso. Haga la activación a mano, guarde la semilla bajo totp_cle en el archivo de credenciales y deje que Dinoer la use a partir de entonces.

Si calcula un código dentro de la página

La API crypto.subtle del navegador solo existe en un contexto seguro, HTTPS o localhost. En un objetivo con HTTP simple no está definida, y un script que dependa de ella falla con Cannot read properties of undefined. depuis_secrets_totp no depende de ella, porque Dinoer calcula el código fuera de la página.

En resumen

  • Semilla en el archivo de credenciales: depuis_secrets_totp. Es lo preferible.
  • Código que se le envía: attendre_mfa_ntfy y después un clic para enviar.
  • Un código escrito en el escenario se rechaza en un campo que parece pedir uno.
  • La activación se hace a mano, una vez; guarde la semilla después.