Overview
Salted Challenge Response Authentication Mechanism (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 el algoritmo SHA-256 para codificar su contraseña, es el mecanismo de autenticación predeterminado en MongoDB Server versión 4.0 y posteriores. SCRAM-SHA-1, que utiliza el algoritmo SHA-1, es el mecanismo de autenticación predeterminado en MongoDB Server versiones anteriores a 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, consulte
RFC 5802 y Mecanismo de Autenticación por Desafío con Sal en Wikipedia.
Para obtener más información sobre la implementación de MongoDB de SCRAM, consulta SCRAM en el manual de MongoDB Server.
Especificar autenticación SCRAM-SHA-256
SCRAM-SHA-256, según lo definido por RFC 7677, cifra tu nombre de usuario y contraseña con el algoritmo SHA-256 para autenticar a tu usuario. Este es el mecanismo de autenticación por defecto.
Los ejemplos en esta sección muestran cómo especificar este mecanismo de autenticación por defecto y usar los siguientes valores de marcador de posición:
db_username:Su nombre de usuario de la base de datos MongoDB.db_password: La contraseña del usuario de base de datos de MongoDB.hostname:La dirección de red de su implementación de MongoDB, abierta para su cliente.portNúmero de puerto de tu implementación de MongoDB.authenticationDb: La base de datos MongoDB que contiene los datos de autenticación de su usuario. Si omite este parámetro, el driver utiliza el valor por defectoadmin.
Selecciona el Connection String o la pestaña MongoCredential a continuación para obtener instrucciones y un código de muestra para especificar este mecanismo de autenticación:
Para especificar el mecanismo de autenticación por defecto mediante una cadena de conexión, omite el mecanismo, como se muestra en el siguiente ejemplo:
val mongoClient = MongoClient.create("mongodb://<db_username>:<db_password>@<hostname>:<port>/?authSource=<authenticationDb>")
Para especificar el mecanismo de autenticación por defecto usando la clase MongoCredential, utiliza el método createCredential() como se muestra en el siguiente ejemplo:
val credential = MongoCredential.createCredential( "<db_username>", "<authenticationDb>", "<db_password>".toCharArray() ) val settings = MongoClientSettings.builder() .applyToClusterSettings { builder: ClusterSettings.Builder -> builder.hosts( listOf(ServerAddress("<hostname>", <port>)) ) } .credential(credential) .build() val mongoClient = MongoClient.create(settings)
De forma alternativa, puede especificar explícitamente el mecanismo de autenticación SCRAM-SHA-256. Selecciona la pestaña Connection String o la pestaña MongoCredential a continuación 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 mediante una cadena de conexión, asigna al parámetro authMechanism el valor SCRAM-SHA-256 en tu cadena de conexión como se muestra en el siguiente ejemplo:
val mongoClient = MongoClient.create("mongodb://<db_username>:<db_password>@<hostname>:<port>/?authSource=admin&authMechanism=SCRAM-SHA-256")
Para especificar el mecanismo de autenticación por defecto utilizando la clase MongoCredential, utiliza el método createScramSha256Credential() como se muestra en el siguiente ejemplo:
val credential = MongoCredential.createScramSha256Credential( "<db_username>", "<authenticationDb>", "<db_password>".toCharArray() ) val settings = MongoClientSettings.builder() .applyToClusterSettings { builder: ClusterSettings.Builder -> builder.hosts( listOf(ServerAddress("<hostname>", <port>)) ) } .credential(credential) .build() val mongoClient = MongoClient.create(settings)
Especificar autenticación SCRAM-SHA-1
SCRAM-SHA-1, según se define en RFC 5802, cifra su nombre de usuario y contraseña con el algoritmo SHA-1 para autenticar al usuario.
Los ejemplos en esta sección muestran cómo especificar este mecanismo de autenticación y utilizar los siguientes valores de marcador de posición:
db_username:Su nombre de usuario de la base de datos MongoDB.db_password: La contraseña del usuario de base de datos de MongoDB.hostname:La dirección de red de su implementación de MongoDB, abierta para su cliente.portNúmero de puerto de tu implementación de MongoDB.authenticationDb: La base de datos MongoDB que contiene los datos de autenticación de su usuario. Si omite este parámetro, el driver utiliza el valor por defectoadmin.
Selecciona la pestaña Connection String o la pestaña MongoCredential a continuación para obtener instrucciones y código de muestra para especificar el mecanismo de autenticación SCRAM-SHA-1:
Para especificar el mecanismo de autenticación SCRAM-SHA-1 mediante una cadena de conexión, asigna al parámetro authMechanism el valor SCRAM-SHA-1 en tu cadena de conexión como se muestra en el siguiente ejemplo:
val mongoClient = MongoClient.create("mongodb://<db_username>:<db_password>@<hostname>:<port>/?authSource=admin&authMechanism=SCRAM-SHA-1")
Para especificar el mecanismo de autenticación por defecto utilizando la clase MongoCredential, utiliza el método createScramSha1Credential() como se muestra en el siguiente ejemplo:
val credential = MongoCredential.createScramSha1Credential( "<db_username>", "<authenticationDb>", "<db_password>".toCharArray() ) val settings = MongoClientSettings.builder() .applyToClusterSettings { builder: ClusterSettings.Builder -> builder.hosts( listOf(ServerAddress("<hostname>", <port>)) ) } .credential(credential) .build() val mongoClient = MongoClient.create(settings)
Información Adicional
Para obtener más información sobre la autenticación en MongoDB, consulta Autenticación en el manual del servidor de MongoDB.
Para obtener más información sobre cómo crear un objeto MongoClient usando el Driver Synchronization de Kotlin, consulta la Crear una guía de MongoClient.