Proteja seus dados
Nesta página
Visão geral
O MongoDB oferece suporte a vários mecanismos que você pode usar para autenticar seu aplicação. Esta página contém exemplos de código que demonstram cada um desses mecanismos.
Dica
Para saber mais sobre qualquer um dos mecanismos de autenticação desta página, consulte as páginas Mecanismos deautenticação e Mecanismos de autenticação empresarial .
Para usar um exemplo de autenticação desta página, copie o exemplo de código noaplicativo de amostra ou em seu próprio aplicativo. Certifique-se de substituir todos os espaços reservados nos exemplos de código, como <hostname>
, pelos valores relevantes para sua implantação do MongoDB.
Aplicativo de amostra
Você pode usar o seguinte aplicativo de exemplo para testar os exemplos de código nesta página. Para usar o aplicativo de amostra, execute as seguintes etapas:
Verifique se você tem o driver C++ instalado em um local de onde seu projeto possa importá-lo.
Copie o código a seguir e cole-o em um novo arquivo
.cpp
dentro do seu projeto.Copie um exemplo de código desta página e cole-o na seção destacada do arquivo.
1 2 3 4 5 6 7 8 9 10 int main() 11 { 12 mongocxx::instance instance; 13 14 try 15 { 16 // Start example code here 17 18 // End example code here 19 20 auto admin = client["admin"]; 21 admin.run_command(bsoncxx::from_json(R"({ "ping": 1 })")); 22 23 std::cout << "Successfully pinged the MongoDB server." << std::endl; 24 } 25 catch (const mongocxx::exception &e) 26 { 27 std::cout << "An exception occurred: " << e.what() << std::endl; 28 return EXIT_FAILURE; 29 } 30 31 return EXIT_SUCCESS; 32 }
SCRAM-SHA-256
O seguinte código mostra como criar um URI de conexão para autenticar utilizando o mecanismo de autenticação do SCRAM-SHA-256
:
auto uri = mongocxx::uri("mongodb://<db_username>:<db_password>@<hostname>:<port>/?" "authSource=admin&authMechanism=SCRAM-SHA-256"); auto client = mongocxx::client(uri);
Para saber mais sobre a autenticação SCRAM-SHA-256 , consulte SCRAM-SHA-256 no guia Autenticação.
SCRAM-SHA-1
O seguinte código mostra como criar um URI de conexão para autenticar utilizando o mecanismo de autenticação do SCRAM-SHA-1
:
auto uri = mongocxx::uri("mongodb://<db_username>:<db_password>@<hostname>:<port>/?" "authSource=admin&authMechanism=SCRAM-SHA-1"); auto client = mongocxx::client(uri);
Para saber mais sobre a autenticação SCRAM-SHA-1 , consulte SCRAM-SHA-1 no guia Autenticação.
MONGODB X.509
O seguinte código mostra como criar um URI de conexão para autenticar utilizando o mecanismo de autenticação do X.509
:
auto uri = mongocxx::uri("mongodb://<hostname>:<port>/?" "tls=true&tlsCertificateKeyFile=path/to/client.pem&authMechanism=MONGODB-X509"); auto client = mongocxx::client(uri);
Para saber mais sobre a autenticação X.509, consulte MongoDB X.509 no Guia de autenticação.
MONGODB-AWS
As seções a seguir mostram como se conectar ao MongoDB usando o mecanismo de autenticação MONGODB-AWS
. Quando você usa o mecanismo MONGODB-AWS
, o driver C++ tenta recuperar suas credenciais do Amazon Web Services das seguintes fontes, na ordem listada:
Parâmetros nomeados passados para o URI de conexão
Variáveis de ambiente
Solicitação de Amazon Web Services EKS AssumeRoleWithWebIdentity
Metadados do container ECS
Metadados de instância do EC2
Cada seção mostra como criar o URI de conexão para autenticar com MONGODB-AWS
ao recuperar suas credenciais do Amazon Web Services a partir da fonte especificada.
Para saber mais sobre como autenticar com Amazon Web Services, consulte MONGODB-Amazon Web Services no guia de autenticação.
URI de conexão
O código abaixo mostra como criar um URI de conexão que inclui as credenciais do Amazon Web Services para autenticar com MONGODB-AWS
:
auto uri = mongocxx::uri("mongodb://<AWS IAM access key ID>:<AWS IAM secret access key>@<hostname>:<port>/?" "authMechanism=MONGODB-AWS"); auto client = mongocxx::client(uri);
Variáveis de ambiente
O seguinte código mostra como criar um URI de conexão para autenticar com MONGODB-AWS
ao obter credenciais de variáveis de ambiente. Certifique-se de ter suas variáveis de ambiente especificadas antes de executar este código.
auto uri = mongocxx::uri("mongodb://<hostname>:<port>/?" "authMechanism=MONGODB-AWS"); auto client = mongocxx::client(uri);
Para saber mais sobre como autenticar com Amazon Web Services usando variáveis de ambiente, consulte Variáveis de ambiente.
Solicitação AssumeRoleWithWebIdentity
O seguinte código mostra como criar um URI de conexão para autenticar com MONGODB-AWS
ao obter credenciais de uma solicitação do AssumeRoleWithWebIdentity
. Certifique-se de que um arquivo de configuração do Amazon Web Services exista em seu ambiente e esteja configurado com as variáveis de ambiente AWS_WEB_IDENTITY_TOKEN_FILE
e AWS_ROLE_ARN
.
auto uri = mongocxx::uri("mongodb://<hostname>:<port>/?" "authMechanism=MONGODB-AWS"); auto client = mongocxx::client(uri);
Para saber mais sobre como autenticar com Amazon Web Services usando uma solicitação AssumeRoleWithWebIdentity
, consulte Solicitação AssumeRoleWithWebIdentity.
ECS Metadata
O seguinte código mostra como criar um URI de conexão para autenticar com MONGODB-AWS
ao obter credenciais de metadados ECS. Certifique-se de especificar o URI do endpoint ECS em uma variável de ambiente chamada AWS_CONTAINER_CREDENTIALS_RELATIVE_URI
.
auto uri = mongocxx::uri("mongodb://<hostname>:<port>/?" "authMechanism=MONGODB-AWS"); auto client = mongocxx::client(uri);
Para saber mais sobre como autenticar com Amazon Web Services usando metadados do ECS, consulte Metadados do ECS.
EC2 Metadados de instância
O código abaixo mostra como criar um URI de conexão para autenticar com MONGODB-AWS
ao obter credenciais de metadados de instância do EC2 . Certifique-se de configurar sua instância do EC2 com suas credenciais temporárias.
auto uri = mongocxx::uri("mongodb://<hostname>:<port>/?" "authMechanism=MONGODB-AWS"); auto client = mongocxx::client(uri);
Para saber mais sobre como autenticar com a Amazon Web Services usando os metadados de instância do EC2, consulte Metadados de instância do EC2.
Kerberos
Observação
Apenas MongoDB Enterprise
A autenticação Kerberos está disponível apenas no MongoDB Enterprise.
O seguinte código mostra como criar um URI de conexão para autenticar com Kerberos:
auto uri = mongocxx::uri("mongodb://<Kerberos principal>@<hostname>:<port>/?" "authMechanism=GSSAPI" "&authMechanismProperties=SERVICE_NAME:<authentication service name>"); auto client = mongocxx::client(uri);
Para saber mais sobre a autenticação com Kerberos, consulte Kerberos no guia Autenticação empresarial.
PLAIN SASL
Observação
Apenas MongoDB Enterprise
A autenticação PLAIN SASL está disponível apenas no MongoDB Enterprise.
O seguinte código mostra como criar um URI de conexão para autenticar com PLAIN SASL:
auto uri = mongocxx::uri("mongodb://<db_username>:<db_password>@<hostname>:<port>/?" "authMechanism=PLAIN&tls=true"); auto client = mongocxx::client(uri);
Para saber mais sobre a autenticação com PLAIN SASL, consulte PLAIN SASL no guia de autenticação empresarial.