Visão geral
O SCRAM (Salted Challenge Response Authentication Mechanism) é uma família de mecanismos de autenticação que usa um mecanismo de desafio-resposta para autenticar o usuário. SCRAM-SHA-,256 como definido por 7677RFC, utiliza o256 algoritmo SHA- para hash sua senha, é o mecanismo de autenticação padrão para implantações que executam MongoDB v..4 0 ou mais tarde. O SCRAM-SHA-,1 conforme definido por RFC,5802 é suportado para compatibilidade com implementações que executam o MongoDB3 6v..
Você pode usar o SCRAM para autenticar no MongoDB Atlas, Enterprise Advanced e MongoDB Community Edition.
Dica
Mecanismos SCRAM
Para saber mais sobre a família SCRAM de mecanismos de autenticação, consulte RFC 5802 e Mecanismo de autenticação de resposta de desafio salgado na Wikipedia.
Para obter mais informações sobre a implementação do MongoDB do SCRAM, consulte SCRAM no manual do MongoDB Server .
Espaços reservados de código
Os exemplos de código nesta página usam os seguintes espaços reservados:
<db_username>: O nome de usuário do banco de dados MongoDB do usuário para autenticar.<db_password>: A senha do banco de dados MongoDB do usuário a ser autenticado.<hostname>: O endereço de rede da sua implantação MongoDB .<port>: o número da porta da sua implantação do MongoDB . Se você omitir este parâmetro, o driver utilizará o número de porta padrão (27017). Você não precisa de um número de porta ao se conectar a um cluster MongoDB Atlas .
Para usar os exemplos de código nesta página, substitua esses espaços reservados por seus próprios valores.
Usando a autenticação SCRAM em seu aplicativo
Para utilizar o SCRAM para autenticar seu usuário MongoDB , especifique seu nome de usuário e senha do MongoDB no URI de conexão juntamente com os parâmetros authSource e authMechanism. Os exemplos nesta página usam authSource=admin, que é o banco de dados de autenticação padrão, e definem authMechanism como SCRAM-SHA-256 ou SCRAM-SHA-1.
Você pode se conectar das seguintes maneiras:
Ao usar apenas um URI de conexão
Ao usar um URI de conexão com as opções TLS (Transport Layer Security) configuradas em um objeto
mongocxx::options::client
As guias a seguir mostram exemplos para SCRAM-SHA-256 e SCRAM-SHA-1, para conexões TLS e não TLS. Selecione a aba que corresponde ao mecanismo de autenticação e ao método de conexão que deseja usar.
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);
Documentação da API
Para saber mais sobre como criar um objeto mongocxx::client no driver C++ , consulte a seguinte documentação da API: