Docs 菜单
Docs 主页
/ / /
C++ 驱动程序

保护您的数据

在此页面上

  • Overview
  • 示例应用程序
  • SCRAM-SHA-256
  • SCRAM-SHA-1
  • MONGODB X.509
  • MONGODB-AWS
  • 连接 URI
  • 环境变量
  • AssumeRoleWithWebIdentity 请求
  • ECS Metadata
  • EC 2实例元数据
  • Kerberos
  • PLAIN SASL

MongoDB支持多种可用于对应用程序进行身份验证的机制。 本页包含演示每种机制的代码示例。

提示

要学习;了解有关此页面上的任何身份验证机制的详情,请参阅身份验证机制企业身份验证机制页面。

要使用此页面中的身份验证示例,请将代码示例复制到示例应用程序或您自己的应用程序中。 请务必将代码示例中的所有占位符(例如 <hostname> )替换为 MongoDB 部署的相关值。

您可以使用以下示例应用程序来测试本页上的代码示例。 要使用示例应用程序,请执行以下步骤:

  1. 确保您已将C++驾驶员安装在项目可以导入的位置。

  2. 复制以下代码,并将其粘贴到项目中的新.cpp文件中。

  3. 从本页复制代码示例,并将其粘贴到文件的突出显示部分。

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}

以下代码演示如何创建连接 URI,以使用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);

要了解有关 SCRAM-SHA- 256身份验证的更多信息,请参阅身份验证指南中的SCRAM-SHA- 256

以下代码演示如何创建连接 URI,以使用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);

要了解有关 SCRAM-SHA- 1身份验证的更多信息,请参阅身份验证指南中的SCRAM-SHA- 1

以下代码演示如何创建连接 URI,以使用X.509身份验证机制进行身份验证:

auto uri = mongocxx::uri("mongodb://<hostname>:<port>/?"
"tls=true&tlsCertificateKeyFile=path/to/client.pem&authMechanism=MONGODB-X509");
auto client = mongocxx::client(uri);

要学习;了解有关 X.509身份验证的更多信息,请参阅身份验证指南中的MongoDB X.509

以下部分介绍如何使用MONGODB-AWS身份验证机制连接到MongoDB 。 当您使用 MONGODB-AWS 机制时, C++驾驶员会尝试按列出的顺序从以下源检索您的Amazon Web Services凭证:

  1. 传递给连接 URI 的命名参数

  2. 环境变量

  3. Amazon Web Services EKS AssumeRoleWithWebIdentity请求

  4. ECS容器元数据

  5. EC 2实例元数据

每节介绍如何创建连接 URI,以便在从指定源检索Amazon Web Services档案时使用 MONGODB-AWS 进行凭证验证。

要学习;了解有关使用Amazon Web Services进行身份验证的更多信息,请参阅身份验证指南中的MONGODB- Amazon Web Services

以下代码演示如何创建包含Amazon Web Services档案的连接 URI,以便使用 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);

以下代码演示了如何创建连接 URI,以便在从环境变量获取档案时使用MONGODB-AWS进行凭证验证。 在运行此代码之前,确保已指定环境变量。

auto uri = mongocxx::uri("mongodb://<hostname>:<port>/?"
"authMechanism=MONGODB-AWS");
auto client = mongocxx::client(uri);

要学习;了解有关使用环境变量向Amazon Web Services进行身份验证的更多信息,请参阅环境变量。

以下代码演示了如何创建连接 URI,以便在从AssumeRoleWithWebIdentity请求获取档案时使用MONGODB-AWS进行凭证验证。 确保您的环境中存在Amazon Web Services配置文件,并配置了 AWS_WEB_IDENTITY_TOKEN_FILEAWS_ROLE_ARN 环境变量。

auto uri = mongocxx::uri("mongodb://<hostname>:<port>/?"
"authMechanism=MONGODB-AWS");
auto client = mongocxx::client(uri);

要学习;了解有关使用 AssumeRoleWithWebIdentity请求向Amazon Web Services进行身份验证的更多信息,请参阅AssumeRoleWithWebIdentity 请求。

以下代码演示了如何创建连接 URI,以便在从 ECS元数据获取档案时使用MONGODB-AWS进行凭证验证。 确保在名为AWS_CONTAINER_CREDENTIALS_RELATIVE_URI的环境变量中指定 ECS 端点的 URI。

auto uri = mongocxx::uri("mongodb://<hostname>:<port>/?"
"authMechanism=MONGODB-AWS");
auto client = mongocxx::client(uri);

要学习;了解有关使用 ECS元数据向Amazon Web Services进行身份验证的更多信息,请参阅ECS 元数据。

以下代码演示了如何创建连接 URI,以便在从 EC 2实例元数据获取档案时使用MONGODB-AWS进行凭证验证。 确保使用临时凭证配置 EC 2实例。

auto uri = mongocxx::uri("mongodb://<hostname>:<port>/?"
"authMechanism=MONGODB-AWS");
auto client = mongocxx::client(uri);

要学习;了解有关使用 EC2实例元数据向Amazon Web Services进行身份验证的更多信息,请参阅EC2 实例元数据。

注意

仅限 MongoDB Enterprise

Kerberos 身份验证仅在 MongoDB Enterprise 中可用。

以下代码演示如何创建连接 URI 以使用Kerberos进行身份验证:

auto uri = mongocxx::uri("mongodb://<Kerberos principal>@<hostname>:<port>/?"
"authMechanism=GSSAPI"
"&authMechanismProperties=SERVICE_NAME:<authentication service name>");
auto client = mongocxx::client(uri);

要了解有关使用 Kerberos 进行身份验证的更多信息,请参阅 Enterprise Authentication 指南中的Kerberos

注意

仅限 MongoDB Enterprise

PLAIN SASL 身份验证仅在 MongoDB Enterprise 中可用。

以下代码演示如何创建连接 URI 以使用 PLAIN SASL 进行身份验证:

auto uri = mongocxx::uri("mongodb://<db_username>:<db_password>@<hostname>:<port>/?"
"authMechanism=PLAIN&tls=true");
auto client = mongocxx::client(uri);

要了解有关使用 PLAIN SASL 进行身份验证的更多信息,请参阅 Enterprise Authentication 指南中的PLAIN SASL

后退

通过聚合转换数据