Certificados X.509

Autentica una aplicación con su certificado de cliente, sin contraseña.

Autentica una aplicación con su certificado de cliente, sin contraseña. El usuario vive en la base $external y se llama como el sujeto del certificado.

Requisitos

  • Un certificado de cliente firmado por una CA que el nodo acepte con --tlsCAFile.
  • Un usuario con permiso para crear usuarios.

Crear el usuario

JavaScript
db.getSiblingDB("$external").runCommand({
  createUser: "CN=tienda-api,OU=apps,O=Ejemplo",
  roles: [{ role: "readWrite", db: "tienda" }],
});

Conectar con el certificado

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

Comprobar

Conéctate con el certificado y ejecuta db.runCommand({ connectionStatus: 1 }). La respuesta lleva en authInfo.authenticatedUsers el usuario del certificado, con su base $external.

Problemas frecuentes

  • La autenticación falla porque el nombre del usuario no es igual al sujeto del certificado.
  • El nodo no pide certificado porque arrancó sin --tlsCAFile.

Ver también