Overview
Mecanismo de Autenticación por Desafío 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 el algoritmo SHA-256 para hashear tu contraseña, es el mecanismo de autenticación por defecto en MongoDB versión de servidor 4.0 y posteriores.
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 de SCRAM de MongoDB, consulte SCRAM en el manual del servidor MongoDB.
Marcadores de posición de código
Los ejemplos de código en esta página utilizan los siguientes marcadores de posición:
db_username- su nombre de usuario de bases de datos MongoDB.db_password- la contraseña de usuario de su base de datos MongoDB.hostname- dirección de red de su servidor MongoDB, accesible por su cliente.port- número de puerto de tu servidor MongoDB.authenticationDb- Base de datos MongoDB que contiene los datos de autenticación de los usuarios. Si omites este parámetro, el driver utilizará el valor por defectoadmin.
Para utilizar los ejemplos de código en esta página, reemplace estos marcadores de posición con sus propios valores.
Autenticación con SCRAM-SHA-256
Selecciona el 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-256.
Para especificar el mecanismo de autenticación predeterminado usando una cadena de conexión, omita el mecanismo. Tu código para instanciar un MongoClient debe asemejarse al siguiente:
val mongoClient = MongoClient.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(). Su código para instanciar un MongoClient debe parecerse al siguiente:
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)
También puede especificar explícitamente el mecanismo de autenticación SCRAM-SHA-256, como se muestra en los siguientes fragmentos de código:
Para especificar el mecanismo de autenticación SCRAM-SHA-256 mediante una cadena de conexión, asigne al parámetro authMechanism el valor SCRAM-SHA-256 en su cadena de conexión. El código para instanciar un MongoClient debería ser similar al siguiente:
val mongoClient = MongoClient.create("mongodb://<db_username>:<db_password>@<hostname>:<port>/?authSource=<authenticationDb>&authMechanism=SCRAM-SHA-256")
Para especificar el mecanismo de autenticación predeterminado mediante la MongoCredential clase, utilice el método createScramSha256Credential(). El código para instanciar un MongoClient debería ser similar al siguiente:
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)