Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Menu Docs
Página inicial do Docs
/ / /
Controlador Node.js
/ /

Mecanismos de autenticação SCRAM

O SCRAM (Salted Challenge Response Authentication Mechanism) é uma família de mecanismos de autenticação que usa um mecanismo de desafio-resposta para autenticar o usuário. SCRAM-SHA-256, que utiliza o algoritmo SHA-256 para hash sua senha, é o mecanismo de autenticação padrão no MongoDB Server versão 4.0 e posterior. SCRAM-SHA-1, que usa o algoritmo SHA-1, é o mecanismo de autenticação padrão nas versões do MongoDB Server anteriores à 4.0.

Você pode usar o SCRAM para autenticar no MongoDB Atlas, Enterprise Advanced e MongoDB Community Edition.

Dica

Mecanismos SCRAM

Para saber mais sobre a família de mecanismos de autenticação SCRAM, consulte RFC 5802 e Mecanismo de autenticação de resposta de desafio salgado na Wikipedia.

Para obter mais informações sobre a implementação do MongoDB do SCRAM, consulte SCRAM no manual do MongoDB Server .

Os exemplos de código nesta página usam os seguintes espaços reservados:

  • <db_username>: O nome de usuário MongoDB do usuário a ser autenticado.

  • <db_password>: A senha MongoDB do usuário para autenticar.

  • <cluster_url>: O endereço de rede da sua implantação MongoDB .

Para usar os exemplos de código, substitua esses espaços reservados por seus próprios valores.

O mecanismo de autenticação do DEFAULT é uma configuração de contingência que instrui o driver a negociar o primeiro mecanismo de autenticação suportado pelo servidor na seguinte ordem de preferência:

  1. SCRAM-SHA-256

  2. SCRAM-SHA-1

  3. MONGODB-CR

Se a opção DEFAULT for especificada, o driver primeiro tentará autenticar usando SCRAM-SHA-256. Se a versão da instância MongoDB não suportar este mecanismo, o driver tentará autenticar utilizando o SCRAM-SHA-1. Se a instância também não oferecer suporte a esse mecanismo, o driver tentará se autenticar usando MONGODB-CR.

Você pode especificar o mecanismo de autenticação padrão definindo o parâmetro authMechanism como DEFAULT na string de conexão ou omitindo o parâmetro, pois é o valor padrão.

O exemplo a seguir mostra como definir o mecanismo de autenticação para o padrão definindo authMechanism como DEFAULT na string de conexão:

Importante

Sempre codifique em URI o nome de usuário e a senha usando o encodeURIComponent método para garantir que sejam analisados corretamente.

const { MongoClient } = require("mongodb");
// Replace the following with values for your environment.
const username = encodeURIComponent("<db_username>");
const password = encodeURIComponent("<db_password>");
const clusterUrl = "<cluster_url>";
const authMechanism = "DEFAULT";
// Replace the following with your MongoDB deployment's connection string.
const uri =
`mongodb+srv://${username}:${password}@${clusterUrl}/?authMechanism=${authMechanism}`;
// 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);

Para saber mais sobre a versão SCRAM compatível com o MongoDB, consulte a seção SCRAM do manual do MongoDB Server.

Observação

SCRAM-SHA-256 é o método de autenticação padrão para MongoDB a partir da versão 4.0

SCRAM-SHA-256 é uma versão SCRAM que utiliza seu nome de usuário e senha, codificado com o algoritmo do SHA-256 para autenticar seu usuário.

Você pode especificar esse mecanismo de autenticação definindo o authMechanism para o valor SCRAM-SHA-256 na string de conexão , conforme mostrado no código de exemplo a seguir.

Importante

Sempre codifique em URI o nome de usuário e a senha usando o encodeURIComponent método para garantir que sejam analisados corretamente.

const { MongoClient } = require("mongodb");
// Replace the following with values for your environment.
const username = encodeURIComponent("<db_username>");
const password = encodeURIComponent("<db_password>");
const clusterUrl = "<cluster_url>";
const authMechanism = "SCRAM-SHA-256";
// Replace the following with your MongoDB deployment's connection string.
const uri =
`mongodb+srv://${username}:${password}@${clusterUrl}/?authMechanism=${authMechanism}`;
// 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);

Observação

SCRAM-SHA-1 é o método de autenticação padrão para as versões 3.0, 3.2, 3.4 e 3.6. do MongoDB.

SCRAM-SHA-1 é uma versão SCRAM que utiliza seu nome de usuário e senha, codificado com o algoritmo do SHA-1 para autenticar seu usuário.

Você pode especificar este mecanismo de autenticação configurando o parâmetro authMechanism para o valor SCRAM-SHA-1 na string de conexão como mostrado no seguinte código de amostra.

Importante

Sempre codifique em URI o nome de usuário e a senha usando o encodeURIComponent método para garantir que sejam analisados corretamente.

const { MongoClient } = require("mongodb");
// Replace the following with values for your environment.
const username = encodeURIComponent("<db_username>");
const password = encodeURIComponent("<db_password>");
const clusterUrl = "<cluster_url>";
const authMechanism = "SCRAM-SHA-1";
// Replace the following with your MongoDB deployment's connection string.
const uri =
`mongodb+srv://${username}:${password}@${clusterUrl}/?authMechanism=${authMechanism}`;
// 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);

Para saber mais sobre qualquer um dos métodos ou tipos discutidos nesta página, consulte a seguinte documentação da API:

Voltar

Autenticação

Nesta página