Autenticación

SCRAM, X.509 y los demás mecanismos de MongoDB, con autenticación en un viaje.

La autorización está siempre activa salvo con --insecure. Los drivers se autentican con los mismos mecanismos que en MongoDB.

Requisitos

  • Un usuario creado con createUser.
  • Para MONGODB-X509, un certificado de cliente firmado por una CA en la que confíe el nodo.

Mecanismos

MecanismoUso
SCRAM-SHA-256Usuario y contraseña; el de por defecto
SCRAM-SHA-1Usuario y contraseña para clientes antiguos
MONGODB-X509Certificado de cliente
PLAINLDAP
GSSAPIKerberos
MONGODB-AWSCredenciales de AWS
MONGODB-OIDCProveedor OIDC

Con speculativeAuthenticate, los drivers actuales se autentican en el mismo viaje que el saludo inicial.

Credenciales guardadas

TeselaDB guarda las claves derivadas de SCRAM (sal, iteraciones, StoredKey y ServerKey), nunca la contraseña. Ni las contraseñas ni las claves privadas aparecen en los logs ni en las métricas.

Con certificado de cliente

mongodb://node-01:27017/?tls=true&tlsCAFile=./ca.pem&tlsCertificateKeyFile=./app.pem&authMechanism=MONGODB-X509

El usuario de un certificado vive en la base $external y se llama como el sujeto del certificado.

Comprobar

En mongosh, ejecuta db.runCommand({ connectionStatus: 1 }). La respuesta lleva en authInfo.authenticatedUsers el usuario con el que te has autenticado, con su base de autenticación.

Problemas frecuentes

  • Una conexión con certificado no se autentica porque el usuario de $external no se llama igual que el sujeto del certificado.

Ver también