Docs Menu
Docs Home
/ /

Mecanismos de autenticación

El controlador Scala admite todos los mecanismos de autenticación de MongoDB, incluidos aquellos disponibles solo en MongoDB Enterprise Edition.

Una credencial de autenticación se representa como una instancia de la MongoCredential clase. La clase MongoCredential incluye métodos de fábrica estáticos para cada uno de los mecanismos de autenticación admitidos.

El mecanismo de autenticación por defecto para MongoDB 6.0 y posteriores es SCRAM-SHA-256.

Para crear una credencial que se autentique mediante el mecanismo de autenticación predeterminado, independientemente de la versión del servidor, cree una credencial utilizando el método de fábrica estático createCredential():

val user = "<db_username>" // the username
val source = "<source>" // the source where the user is defined
val password = ... // the password as a character array
val credential = MongoCredential.createCredential(user, source, password)
val mongoClient = MongoClient(MongoClientSettings
.builder()
.applyToClusterSettings(builder =>
builder.hosts(Collections.singletonList(ServerAddress("localhost", 27017))))
.credential(credential)
.build())

O bien, puede utilizar una cadena de conexión sin especificar explícitamente el mecanismo de autenticación:

val mongoClient = MongoClient("mongodb://user1:pwd1@host1/?authSource=db1")

El mecanismo de autenticación de desafío-respuesta con sal (SCRAM) ha sido el mecanismo de autenticación predeterminado para MongoDB desde 3.0. SCRAM se basa en el Estándar IETF RFC 5802 que define las mejores prácticas para la implementación de mecanismos de desafío-respuesta para autenticar usuarios con contraseñas.

Para utilizar este mecanismo es necesario configurar featureCompatibilityVersion en 4.0 o una versión posterior.

Para crear explícitamente una credencial de tipo SCRAM-SHA-256, utilice el método createScramSha256Credential():

val user = "<db_username>" // the username
val source = "<source>" // the source where the user is defined
val password = ... // the password as a character array
val credential = MongoCredential.createScramSha256Credential(user, source, password)
val mongoClient = MongoClient(MongoClientSettings
.builder()
.applyToClusterSettings(builder =>
builder.hosts(Collections.singletonList(ServerAddress("localhost", 27017))))
.credential(credential)
.build())

O bien, puedes utilizar una cadena de conexión que especifique explícitamente authMechanism=SCRAM-SHA-256:

val mongoClient = MongoClient("mongodb://user1:pwd1@host1/?authSource=db1&authMechanism=SCRAM-SHA-256")

Con el mecanismo x.509, MongoDB utiliza el certificado x.509 presentado durante la negociación SSL para autenticar a un usuario cuyo nombre se deriva del nombre distinguido del certificado x.509.

La autenticación x.509 requiere el uso de conexiones SSL con validación de certificado. Para crear una credencial de este tipo, utilice el método de fábrica estático createMongoX509Credential():

val credential = MongoCredential.createMongoX509Credential()
val mongoClient = MongoClient(MongoClientSettings
.builder()
.applyToClusterSettings(builder =>
builder.hosts(Collections.singletonList(ServerAddress("localhost", 27017))))
.credential(credential)
.build())

O bien, puedes utilizar una cadena de conexión que especifique explícitamente authMechanism=MONGODB-X509:

val mongoClient = MongoClient("mongodb://subjectName@host1/?authMechanism=MONGODB-X509&ssl=true")

Consulta el tutorial Usar certificados x.509 para autenticar clientes en el manual del servidor para saber más sobre el uso de certificados x.509 en tu aplicación.

Volver

Seguridad

En esta página