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
| Mecanismo | Uso |
|---|---|
SCRAM-SHA-256 | Usuario y contraseña; el de por defecto |
SCRAM-SHA-1 | Usuario y contraseña para clientes antiguos |
MONGODB-X509 | Certificado de cliente |
PLAIN | LDAP |
GSSAPI | Kerberos |
MONGODB-AWS | Credenciales de AWS |
MONGODB-OIDC | Proveedor 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-X509El 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
$externalno se llama igual que el sujeto del certificado.
Ver también
- Roles y privilegios, para dar a cada usuario solo lo que necesita.
- TLS y certificados, con los certificados del clúster.