Menu Docs
Página inicial do Docs
/ / /
Driver C++

Proteja seus dados

Nesta página

  • Visão geral
  • Aplicativo de amostra
  • SCRAM-SHA-256
  • SCRAM-SHA-1
  • MONGODB X.509
  • MONGODB-AWS
  • URI de conexão
  • Variáveis de ambiente
  • Solicitação AssumeRoleWithWebIdentity
  • ECS Metadata
  • EC2 Metadados de instância
  • Kerberos
  • PLAIN SASL

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.

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:

  1. Verifique se você tem o driver C++ instalado em um local de onde seu projeto possa importá-lo.

  2. Copie o código a seguir e cole-o em um novo arquivo .cpp dentro do seu projeto.

  3. Copie um exemplo de código desta página e cole-o na seção destacada do arquivo.

1#include <bsoncxx/json.hpp>
2
3#include <mongocxx/client.hpp>
4#include <mongocxx/exception/exception.hpp>
5#include <mongocxx/instance.hpp>
6#include <mongocxx/uri.hpp>
7
8#include <iostream>
9
10int 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}

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.

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.

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.

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:

  1. Parâmetros nomeados passados para o URI de conexão

  2. Variáveis de ambiente

  3. Solicitação de Amazon Web Services EKS AssumeRoleWithWebIdentity

  4. Metadados do container ECS

  5. 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.

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);

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.

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.

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.

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.

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.

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.

Voltar

Execute um comando