Docs Menu
Docs Home
/ /

Configuración

En el controlador mongocxx, la mayor parte de la configuración se realiza a través de URI de conexión. Se pueden obtener opciones de conexión adicionales mediante la clase mongocxx::options::client.

Para habilitar TLS (SSL), configure tls=true en la URI:

mongodb://mongodb.example.com/?tls=true

De forma predeterminada, mongocxx verificará los certificados del servidor con la lista de CA del sistema local. Puede anular esta configuración especificando una configuración diferente en la cadena de conexión o creando un objeto mongocxx::options::tls y pasándolo a tls_opts mongocxx::options::clienten.

Por ejemplo, para utilizar una CA personalizada o deshabilitar la validación de certificados, consulte el siguiente ejemplo:

// 1) Using tls_options
mongocxx::options::client client_options;
mongocxx::options::tls tls_options;
// If the server certificate is not signed by a well-known CA,
// you can set a custom CA file with the `ca_file` option.
tls_options.ca_file("/path/to/custom/cert.pem");
// If you want to disable certificate verification, you
// can set the `allow_invalid_certificates` option.
tls_options.allow_invalid_certificates(true);
client_options.tls_opts(tls_options);
auto client1 = mongocxx::client{uri{"mongodb://host1/?tls=true"}, client_options};
// 2) Using the URI
auto client2 = mongocxx::client{uri{"mongodb://host1/?tls=true&tlsAllowInvalidCertificates=true&tlsCAFile=/path/to/custom/cert.pem"}};

MongoDB 3.0 cambió el mecanismo de autenticación predeterminado de MONGODB-CR a SCRAM-SHA-1. Para crear una credencial que se autentique correctamente independientemente de la versión del servidor, utilice una cadena de conexión con el usuario y la contraseña directamente en la URI y con un parámetro que especifique la base de datos desde la que se autenticará:

#include <mongocxx/client.hpp>
#include <mongocxx/uri.hpp>
auto client = mongocxx::client{uri{"mongodb://user1:pwd1@host1/?authSource=db1"}};

Para crear explícitamente una credencial de tipo SCRAM-SHA-1, utilice una cadena de conexión como la anterior, pero con un parámetro que especifique el mecanismo de autenticación como "SCRAM-SHA-1":

#include <mongocxx/client.hpp>
#include <mongocxx/uri.hpp>
auto client = mongocxx::client{
uri{"mongodb://user1:pwd1@host1/?authSource=db1&authMechanism=SCRAM-SHA-1"}
};

El mecanismo de autenticación MONGODB-CR está obsoleto y ya no funcionará en MongoDB 4.0. En su lugar, especifique "no authMechanism" y el controlador utilizará un mecanismo de autenticación compatible con su servidor.

El mecanismo X.509 autentica a un usuario cuyo nombre se deriva del nombre distinguido del sujeto del509 certificado X. presentado por el controlador durante la negociación TLS. Este método de autenticación requiere el uso de conexiones TLS con validación de certificado y está disponible en MongoDB 2.6 y versiones posteriores. Para crear una credencial de este tipo, utilice una cadena de conexión con un parámetro que especifique el mecanismo de autenticación "MONGODB-X509" como, que especifique la ruta al archivo PEM que contiene la clave privada del cliente y el certificado, y que tenga TLS habilitado:

#include <mongocxx/client.hpp>
#include <mongocxx/uri.hpp>
auto client = mongocxx::client{
uri{"mongodb://host1/?authMechanism=MONGODB-X509&tlsCertificateKeyFile=client.pem&tls=true"}
};

Consulte el tutorial del servidor509 MongoDB X. para obtener más información sobre cómo determinar el nombre del sujeto a partir del certificado.

El archivo PEM también se puede especificar utilizando la clase mongocxx::options::tls, consulte el ejemplo de configuración TLS/SSL predeterminada más arriba.

MongoDB Enterprise admite la autenticación por proxy mediante el servicio Kerberos. Para crear una credencial de tipo Kerberos (GSSAPI), utilice una cadena de conexión con el nombre de usuario y el dominio en el URI, así como un parámetro que especifique el mecanismo de autenticación "GSSAPI" como:

#include <mongocxx/client.hpp>
#include <mongocxx/uri.hpp>
auto client = mongocxx::client{
uri{"mongodb://username%40REALM.COM@host1/?authMechanism=GSSAPI"}
};

Nota

El símbolo @ en la cadena URI debe escaparse a %40 como se muestra en el ejemplo anterior.

MongoDB Enterprise admite la autenticación por proxy mediante un servicio de Protocolo Ligero de Acceso a Directorios (LDAP). Para crear una credencial de tipo LDAP, utilice una cadena de conexión que especifique el usuario, así como parámetros que especifiquen la fuente de autenticación como "$external" y el mecanismo de autenticación "PLAIN" como:

#include <mongocxx/client.hpp>
#include <mongocxx/uri.hpp>
auto client = mongocxx::client{
uri{"mongodb://user1:pwd1@host1/?authSource=$external&authMechanism=PLAIN"}
};

Para configurar un pool de conexiones, primero cree un mongocxx::pool y pase el URI como argumento. El tamaño del pool se puede configurar en el URI. Luego, llame a mongocxx::pool::acquire para recibir un cliente del pool. El cliente se devolverá automáticamente al pool cuando salga del ámbito.

#include <mongocxx/pool.hpp>
#include <mongocxx/uri.hpp>
auto pool = mongocxx::pool{uri{"mongodb://host1/?minPoolSize=3&maxPoolSize=5"}};
{
// To get a client from the pool, call `acquire()`.
auto client = pool.acquire();
// The client is returned to the pool when it goes out of scope.
}

Consulte la documentación del grupo de conexiones para obtener más detalles.

MongoDB 3.4 agregó soporte de compresión Snappy, mientras que la compresión zlib se agregó en 3.6 y la compresión zstd en 4.2.

Puede habilitar la compresión de datos con las opciones de URI correspondientes. Obtenga más información sobre estas opciones en la documentación de la API del controlador C de MongoDB.

Volver

Avanzada

En esta página