Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Mecanismos de autenticación SCRAM

El Mecanismo de Autenticación por Desafío-Respuesta con Sal (SCRAM) es una familia de mecanismos de autenticación que utilizan un mecanismo de desafío-respuesta para autenticar al usuario. SCRAM-SHA-,256 que utiliza el256 algoritmo SHA- para cifrar la contraseña, es el mecanismo de autenticación predeterminado en MongoDB Server versión 4.0 y posteriores. SCRAM-SHA-,1 que utiliza el1 algoritmo SHA-, es el mecanismo de autenticación predeterminado en MongoDB Server versiones anteriores 4.0 a.

Puede utilizar SCRAM para autenticarse en MongoDB Atlas, MongoDB Enterprise Advanced y MongoDB Community Edition.

Tip

Mecanismos SCRAM

Para obtener más información sobre la familia de mecanismos de autenticación SCRAM, consulta RFC 5802 y Mecanismo de Autenticación por Desafío con Sal en Wikipedia.

Para obtener más información sobre la implementación SCRAM de MongoDB, consulte SCRAM en el manual del servidor de MongoDB.

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

  • <db_username>: El nombre de usuario de MongoDB del usuario que se va a autenticar.

  • <db_password>La contraseña MongoDB del usuario para autenticarse.

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

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

El mecanismo de autenticación DEFAULT es una configuración de respaldo que instruye al driver a negociar el primer mecanismo de autenticación soportado por el servidor en el siguiente orden de preferencia:

  1. SCRAM-SHA-256

  2. SCRAM-SHA-1

  3. MONGODB-CR

Si se especifica la opción DEFAULT, el controlador primero intenta autenticarse usando SCRAM-SHA-256. Si la versión de la instancia de MongoDB no admite ese mecanismo, el controlador intenta autenticarse usando SCRAM-SHA-1. Si la instancia tampoco admite ese mecanismo, el controlador intenta autenticarse usando MONGODB-CR.

Puedes especificar el mecanismo de autenticación predeterminado configurando el parámetro authMechanism en DEFAULT en la cadena de conexión, o bien omitiendo el parámetro porque es el valor predeterminado.

El siguiente ejemplo muestra cómo establecer el mecanismo de autenticación en el por defecto configurando authMechanism en DEFAULT en la cadena de conexión:

Importante

Siempre codifica URI el nombre de usuario y la contraseña usando el método encodeURIComponent para asegurarte de que se interpreten correctamente.

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 obtener más información sobre la versión SCRAM compatible con MongoDB, consulte la sección SCRAM del manual de MongoDB Server.

Nota

SCRAM-SHA-256 es el método de autenticación por defecto para MongoDB a partir de la versión 4.0

SCRAM-SHA-256 es una versión de SCRAM que utiliza tu nombre de usuario y contraseña, cifrada con el algoritmo SHA-256 para autenticar al usuario.

Puede especificar este mecanismo de autenticación estableciendo authMechanism en SCRAM-SHA-256 el valor en la cadena de conexión como se muestra en el siguiente código de muestra.

Importante

Siempre codifica URI el nombre de usuario y la contraseña usando el método encodeURIComponent para asegurarte de que se interpreten correctamente.

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);

Nota

SCRAM-SHA-1 es el método de autenticación por defecto para las versiones 3.0, 3.2, 3.4 y 3.6 de MongoDB.

SCRAM-SHA-1 es una versión de SCRAM que utiliza tu nombre de usuario y contraseña, cifrada con el algoritmo SHA-1 para autenticar al usuario.

Puedes especificar este mecanismo de autenticación configurando el parámetro authMechanism con el valor SCRAM-SHA-1 en la cadena de conexión como se muestra en el siguiente código de muestra.

Importante

Siempre codifica URI el nombre de usuario y la contraseña usando el método encodeURIComponent para asegurarte de que se interpreten correctamente.

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 obtener más información sobre cualquiera de los métodos o tipos analizados en esta página, consulte la siguiente documentación de API:

Volver

Autenticación

En esta página