Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
MongoDB Branding Shape
Click here >
Docs Menu

Mecanismo de autenticación X.509

En el mecanismo de autenticación X.509, el servidor y el cliente utilizan el protocolo TLS para intercambiar certificados de llave pública X.509. Puedes usar este mecanismo para autenticarte en MongoDB Atlas, MongoDB Enterprise Advanced y MongoDB Community Edition.

Tip

X.509 Mecanismo

Para aprender a utilizar TLS/SSL con el controlador Node.js, consulta la guía Habilitar TLS en una conexión.

Para obtener más información sobre los certificados X.509 , consulta Usar certificados x.509 para autenticar clientes en implementaciones autogestionadas en el manual del MongoDB Server.

Los ejemplos de código en esta página utilizan los siguientes marcadores de posición:

  • <cluster_url>: La dirección de red de tu implementación de MongoDB.

  • <pem_certificate_file_path>Ruta al archivo de certificado PEM de tu cliente.

Para utilizar los ejemplos de código, reemplaza estos marcadores de posición por tus propios valores.

Puede especificar este mecanismo de autenticación estableciendo los siguientes parámetros de su cadena de conexión:

  • Establece el parámetro authMechanism en MONGODB-X509

  • Establece el parámetro tls en true

Indique la ubicación de su archivo de certificado de cliente como el valor de tlsCertificateKeyFile como parámetro del URI de conexión.

Importante

Siempre codifica URI la ruta del archivo del certificado usando el método encodeURIComponent para asegurar que se analice correctamente.

const { MongoClient } = require("mongodb");
// Replace the following with values for your environment.
const clusterUrl = "<cluster_url>";
const clientPEMFile = encodeURIComponent("<pem_certificate_file_path>");
const authMechanism = "MONGODB-X509";
// Replace the following with your MongoDB deployment's connection string.
const uri =
`mongodb+srv://${clusterUrl}/?authMechanism=${authMechanism}&tls=true&tlsCertificateKeyFile=${clientPEMFile}`;
// Create a new MongoClient
const client = new MongoClient(uri);
// Function to connect to the server
async function run() {
try {
// Establish and verify connection
await client.db("admin").command({ ping: 1 });
console.log("Connected successfully to server");
} finally {
// Ensures that the client will close when you finish/error
await client.close();
}
}
run().catch(console.dir);

La siguiente tabla describe las opciones TLS que se pueden establecer en un URI de conexión.

Nombre del parámetro
Tipo
Valor por defecto
Descripción

tls

booleano

false

Especifica si se habilita TLS en la conexión.

tlsInsecure

booleano

false

Especifica si se permite o no certificados inválidos y nombres de host que no coinciden. Cuando se establece en true, esto es equivalente a configurar tlsAllowInvalidCertificates y tlsAllowInvalidHostnames en true.

tlsCAFile

string

Ruta al archivo que contiene una o un paquete de autoridades de certificación confiables que se utilizan en una conexión TLS.

tlsCertificateKeyFile

string

Ruta al archivo del certificado de cliente o al archivo de la llave privada del cliente. Si ambos son necesarios, deben concatenarse en un único archivo.

tlsCertificateKeyFilePassword

búfer o string

string o buffer que contiene la contraseña para descifrar la llave privada del cliente.

tlsAllowInvalidCertificates

booleano

false

Especifica si el controlador permite el uso de un certificado no válido para conectarse.

tlsAllowInvalidHostnames

booleano

false

Especifica si el controlador genera un error cuando hay una discrepancia entre el hostname del servidor y el hostname del certificado TLS.