Overview
El Mecanismo de Autenticación de Respuesta a 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 según se define en la RFC, utiliza 7677el256 algoritmo SHA- para cifrar la contraseña y es el mecanismo de autenticación predeterminado para implementaciones que ejecutan MongoDB v..4 0 o posterior. SCRAM-SHA-,1 según se define en la 5802RFC, es compatible con implementaciones que ejecutan MongoDB3 6v..
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 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.
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>: Es el nombre de usuario de la base de datos MongoDB del usuario que se va a autenticar.<db_password>: La contraseña de base de datos MongoDB del usuario para la autenticación.<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.
Para usar los ejemplos de código en esta página, reemplaza estos marcadores de posición con tus propios valores.
Uso de la autenticación SCRAM en tu aplicación
Para utilizar SCRAM para autenticar a tu usuario de MongoDB, especifica tu nombre de usuario y contraseña de MongoDB en la URI de conexión junto con los parámetros authSource y authMechanism. Los ejemplos de esta página usan authSource=admin, que es la base de datos de autenticación por defecto, y configuran authMechanism en SCRAM-SHA-256 o SCRAM-SHA-1.
Puedes conectarte de las siguientes maneras:
Usando solo un URI de conexión
Al usar un URI de conexión con opciones de Transport Layer Security (TLS) configuradas en un objeto
mongocxx::options::client
Las siguientes pestañas muestran ejemplos tanto para SCRAM-SHA-256 como para SCRAM-SHA-1, tanto para conexiones TLS como para conexiones que no son TLS. Selecciona la pestaña que coincida con el mecanismo de autenticación y el método de conexión que desees utilizar.
auto uri = mongocxx::uri("mongodb://<db_username>:<db_password>@<hostname>:<port>/?" "authSource=admin&authMechanism=SCRAM-SHA-256"); auto client = mongocxx::client(uri);
mongocxx::options::client client_options; mongocxx::options::tls tls_options; tls_options.pem_file("path/to/ca-or-client.pem"); client_options.tls_opts(tls_options); auto uri = mongocxx::uri( "mongodb://<db_username>:<db_password>@<hostname>:<port>/?" "authSource=admin&authMechanism=SCRAM-SHA-256&tls=true"); auto client = mongocxx::client(uri, client_options);
auto uri = mongocxx::uri("mongodb://<db_username>:<db_password>@<hostname>:<port>/?" "authSource=admin&authMechanism=SCRAM-SHA-1"); auto client = mongocxx::client(uri);
mongocxx::options::client client_options; mongocxx::options::tls tls_options; tls_options.pem_file("path/to/ca-or-client.pem"); client_options.tls_opts(tls_options); auto uri = mongocxx::uri( "mongodb://<db_username>:<db_password>@<hostname>:<port>/?" "authSource=admin&authMechanism=SCRAM-SHA-1&tls=true"); auto client = mongocxx::client(uri, client_options);
Documentación de la API
Para obtener más información sobre cómo crear un objeto mongocxx::client en el driver de C++, consulte la siguiente documentación de la API: