Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

Autenticación SCRAM

El Salted Challenge Response Authentication Mechanism (SCRAM) es una familia de mecanismos de autenticación que utiliza un mecanismo de desafío-respuesta para autenticar al usuario. SCRAM-SHA-256, que utiliza el algoritmo SHA-256 para crear hash de tu contraseña, es el mecanismo de autenticación por defecto en MongoDB Server versión 4.0 y posteriores. SCRAM-SHA-1, que utiliza el algoritmo SHA-1 en su lugar, es el mecanismo de autenticación por defecto en las versiones de MongoDB Server anteriores a la 4.0.

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 con Desafío y Respuesta Sazonada en Wikipedia.

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

Nota

MongoDB ya no admite el mecanismo de autenticación obsoleto de desafío-respuesta de MongoDB (MONGODB-CR). Si tu implementación tiene credenciales de usuario almacenadas en un esquema MONGODB-CR, debes actualizar a un mecanismo basado en SCRAM.

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.

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

  • <port>: El número de puerto de tu implementación de MongoDB. Si omites este parámetro, el controlador utilizará el número de puerto por defecto (27017). No necesitas un número de puerto al conectarte a un clúster de MongoDB Atlas.

  • <authenticationDb>La base de datos de MongoDB que contiene los datos de autenticación del usuario. Si omite este parámetro, el driver utiliza el valor por defecto, admin.

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

Para usar el mecanismo SCRAM predeterminado para autenticar a tu usuario de MongoDB, especifica tus credenciales de MongoDB, pero no especifiques un mecanismo de autenticación. Seleccione la pestaña Connection String o MongoCredential a continuación para obtener instrucciones y un código de ejemplo para la sintaxis correspondiente:

Para especificar el mecanismo de autenticación predeterminado usando una cadena de conexión, omita el mecanismo. El código para instanciar un MongoClient se parece al siguiente:

MongoClient mongoClient = MongoClients.create("mongodb://<db_username>:<db_password>@<hostname>:<port>/?authSource=<authenticationDb>");

Para especificar el mecanismo de autenticación por defecto utilizando la clase MongoCredential, use el método createCredential(). El código para crear MongoClient es parecido al siguiente:

String user = "<db_username>"; // the user name
String source = "<authenticationDb>"; // the source where the user is defined
char[] password = "<db_password>".toCharArray(); // the password as a character array
// ...
MongoCredential credential = MongoCredential.createCredential(user, source, password);
MongoClient mongoClient = MongoClients.create(
MongoClientSettings.builder()
.applyToClusterSettings(builder ->
builder.hosts(Arrays.asList(new ServerAddress("<hostname>", "<port>"))))
.credential(credential)
.build());

Para obtener más información sobre los mecanismos SCRAM compatibles con MongoDB, consulte la sección SCRAM del manual del servidor MongoDB.

SCRAM-SHA-256 es el método de autenticación por defecto para MongoDB a partir de MongoDB 4.0, pero este ejemplo de código muestra cómo utilizar explícitamente este mecanismo. Selecciona la pestaña Connection String o la MongoCredential para obtener instrucciones y código de muestra para especificar este mecanismo de autenticación:

Para especificar el mecanismo de autenticación SCRAM-SHA-256 utilizando una cadena de conexión, asigna al parámetro authMechanism el valor SCRAM-SHA-256 en tu cadena de conexión. El código para instanciar un MongoClient se asemeja al siguiente:

MongoClient mongoClient = MongoClients.create("mongodb://<db_username>:<db_password>@<hostname>:<port>/?authSource=<authenticationDb>&authMechanism=SCRAM-SHA-256");

Para especificar el mecanismo de autenticación SCRAM-SHA-256 utilizando la clase MongoCredential, usa el método createScramSha256Credential(). El código para instanciar un MongoClient se asemeja al siguiente:

String user = "<db_username>"; // the user name
String source = "<authenticationDb>"; // the source where the user is defined
char[] password = "<db_password>".toCharArray(); // the password as a character array
// ...
MongoCredential credential = MongoCredential.createScramSha256Credential(user, source, password);
MongoClient mongoClient = MongoClients.create(
MongoClientSettings.builder()
.applyToClusterSettings(builder ->
builder.hosts(Arrays.asList(new ServerAddress("<hostname>", "<port>"))))
.credential(credential)
.build());

SCRAM-SHA-1 es el método de autenticación por defecto para versiones de MongoDB anteriores a 4.0, pero este ejemplo de código muestra cómo utilizar explícitamente este mecanismo. Selecciona la pestaña Connection String o la MongoCredential para obtener instrucciones y código de muestra para especificar este mecanismo de autenticación:

Para especificar el mecanismo de autenticación SCRAM-SHA-1 utilizando una cadena de conexión, asigna al parámetro authMechanism el valor SCRAM-SHA-1 en tu cadena de conexión. El código para instanciar un MongoClient se asemeja al siguiente:

MongoClient mongoClient = MongoClients.create("mongodb://<db_username>:<db_password>@<hostname>:<port>/?authSource=<authenticationDb>&authMechanism=SCRAM-SHA-1");

Para especificar el mecanismo de autenticación SCRAM-SHA-1 utilizando la clase MongoCredential, usa el método createScramSha1Credential(). El código para instanciar un MongoClient se asemeja al siguiente:

String user = "<db_username>"; // the user name
String source = "<authenticationDb>"; // the source where the user is defined
char[] password = "<db_password>".toCharArray(); // the password as a character array
// ...
MongoCredential credential = MongoCredential.createScramSha1Credential(user, source, password);
MongoClient mongoClient = MongoClients.create(
MongoClientSettings.builder()
.applyToClusterSettings(builder ->
builder.hosts(Arrays.asList(new ServerAddress("<hostname>", "<port>"))))
.credential(credential)
.build());

Para aprender más sobre cualquiera de los métodos o tipos tratados en esta página, consulta la siguiente documentación de la API: