Visão geral
No 509 mecanismo de autenticação X., o servidor e o cliente usam o protocolo TLS para trocar509 certificados de chave pública X.. Você pode usar esse mecanismo para autenticar no MongoDB Atlas, Enterprise Advanced e MongoDB Community Edition.
Dica
X.509 Mecanismo
Para saber como usar o TLS/SSL com o driver Node.js, consulte o guia Habilitar TLS em uma conexão.
Para mais informações sobre509 certificados X.,509 consulte Usar certificados x. para autenticar clientes em sistemas autogerenciados no manual do MongoDB Server .
Espaços reservados de código
Os exemplos de código nesta página usam os seguintes espaços reservados:
<cluster_url>: O endereço de rede da sua implantação MongoDB .<pem_certificate_file_path>: O caminho para o arquivo de certificado PEM do cliente .
Para usar os exemplos de código, substitua esses espaços reservados por seus próprios valores.
Especifique a autenticação X.509
Você pode especificar esse mecanismo de autenticação definindo os seguintes parâmetros da connection string:
Configure o parâmetro
authMechanismparaMONGODB-X509Configure o parâmetro
tlsparatrue
Passe o local do seu arquivo de certificado do cliente como o valor de tlsCertificateKeyFile como um parâmetro do URI de conexão.
Importante
Sempre codifique em URI o caminho do arquivo de certificado usando o método encodeURIComponent para garantir que ele seja analisado corretamente.
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);
Opções de TLS
A tabela a seguir descreve as opções de TLS que você pode definir em um URI de conexão.
Nome do Parâmetro | Tipo | Valor padrão | Descrição |
|---|---|---|---|
| booleano |
| Especifica se deseja habilitar o TLS na conexão. |
| booleano |
| Especifica se permite certificados inválidos e nomes de host incompatíveis. Quando definido como |
| string | Caminho para o arquivo que contém uma única autoridade de certificação confiável ou um pacote de autoridades de certificação confiáveis usadas em uma conexão TLS. | |
| string | Caminho para o arquivo de certificado do cliente ou o arquivo de chave privada do cliente. Se ambos forem necessários, os dois devem ser concatenados em um único arquivo. | |
| buffer ou string | String ou buffer que contém a senha para descriptografar a chave privada do cliente. | |
| booleano |
| Especifica se o driver permite que um certificado inválido seja usado para se conectar. |
| booleano |
| Especifica se o driver gera um erro quando há uma incompatibilidade entre o nome de host do servidor e o nome do host do certificado TLS. |