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
/ /

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 Salted Challenge Response Authentication Mechanism 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.

  • <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 MongoDB que contiene los datos de autenticación del usuario. Si se omite este parámetro, el controlador usa el valor predeterminado, 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. Elija el Connection String o en la pestaña MongoCredential que se encuentra más abajo para las instrucciones y el código de muestra 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:

MongoCredential credential = MongoCredential.createCredential("<db_username>", "<authenticationDb>", "<db_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 de autenticación de desafío-respuesta (CR) y de autenticación de desafío-respuesta con sal (SCRAM) que MongoDB soporta, consulta la sección de SCRAM del manual del MongoDB Server.

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:

MongoCredential credential = MongoCredential.createScramSha256Credential("<db_username>", "<authenticationDb>", "<db_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:

MongoCredential credential = MongoCredential.createScramSha1Credential("<db_username>", "<authenticationDb>", "<db_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 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