Seguridad
Defensa en profundidad, no una lista de verificación
La autenticación, el vínculo de credenciales y la auditabilidad son mecanismos a nivel de protocolo, no middleware añadido después. Esta página describe cada uno que directory-go realmente aplica.
Autenticación por contraseña
Las contraseñas se cifran con bcrypt y nunca se registran en logs ni se devuelven por ningún endpoint. El inicio de sesión está limitado por IP de origen, independientemente del registro. Una contraseña olvidada se recupera vía POST /password-reset, que siempre responde igual exista o no el correo registrado — el endpoint no puede usarse para enumerar cuentas — y emite un token de restablecimiento de un solo uso y de vida corta.
Llaves de acceso (WebAuthn)
Como alternativa a la contraseña, una cuenta puede registrar una o más llaves de acceso — la huella, el rostro, o una llave de seguridad física de un dispositivo autentica el inicio de sesión, y la clave privada nunca sale del dispositivo. No hay nada que interceptar, reproducir o phishear: la credencial queda vinculada exactamente al origen contra el que se registró. El registro y el inicio de sesión son cada uno una ceremonia de desafío/respuesta en dos pasos, construida sobre la API estándar de navegador PublicKeyCredential. Una llave de acceso siempre es aditiva — el inicio de sesión por contraseña sigue disponible como alternativa.
Registro de auditoría duradero
Cada escritura contra el registro — emitir o revocar un certificado, un cambio de estado, una nueva suscripción de webhook — se guarda en un log persistente y consultable: quién, qué acción, cuándo, y suficiente detalle para reconstruir lo ocurrido. Un registro sobrevive a la institución que describe; eliminar una institución borra la referencia del registro hacia ella, nunca el registro en sí.
Tokens vinculados a certificado (RFC 8705)
Cubierto en detalle en la página de Certificados y mTLS: una sesión o credencial de servicio puede vincularse a la huella de un certificado de cliente en el momento en que se emite, de modo que un token Bearer filtrado por sí solo deja de ser suficiente para autenticar.