保护您的数据
在此页面上
Overview
MongoDB支持多种可用于对应用程序进行身份验证的机制。 本页包含演示每种机制的代码示例。
要使用此页面中的身份验证示例,请将代码示例复制到示例应用程序或您自己的应用程序中。 请务必将代码示例中的所有占位符(例如 <hostname>
)替换为 MongoDB 部署的相关值。
示例应用程序
您可以使用以下示例应用程序来测试本页上的代码示例。 要使用示例应用程序,请执行以下步骤:
确保您已将C++驾驶员安装在项目可以导入的位置。
复制以下代码,并将其粘贴到项目中的新
.cpp
文件中。从本页复制代码示例,并将其粘贴到文件的突出显示部分。
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
以下代码演示如何创建连接 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 。
SCRAM-SHA-1
以下代码演示如何创建连接 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 。
MONGODB X.509
以下代码演示如何创建连接 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-AWS
身份验证机制连接到MongoDB 。 当您使用 MONGODB-AWS
机制时, C++驾驶员会尝试按列出的顺序从以下源检索您的Amazon Web Services凭证:
传递给连接 URI 的命名参数
环境变量
Amazon Web Services EKS AssumeRoleWithWebIdentity请求
ECS容器元数据
EC 2实例元数据
每节介绍如何创建连接 URI,以便在从指定源检索Amazon Web Services档案时使用 MONGODB-AWS
进行凭证验证。
要学习;了解有关使用Amazon Web Services进行身份验证的更多信息,请参阅身份验证指南中的MONGODB- Amazon Web Services 。
连接 URI
以下代码演示如何创建包含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进行身份验证的更多信息,请参阅环境变量。
AssumeRoleWithWebIdentity 请求
以下代码演示了如何创建连接 URI,以便在从AssumeRoleWithWebIdentity
请求获取档案时使用MONGODB-AWS
进行凭证验证。 确保您的环境中存在Amazon Web Services配置文件,并配置了 AWS_WEB_IDENTITY_TOKEN_FILE
和 AWS_ROLE_ARN
环境变量。
auto uri = mongocxx::uri("mongodb://<hostname>:<port>/?" "authMechanism=MONGODB-AWS"); auto client = mongocxx::client(uri);
要学习;了解有关使用 AssumeRoleWithWebIdentity
请求向Amazon Web Services进行身份验证的更多信息,请参阅AssumeRoleWithWebIdentity 请求。
ECS Metadata
以下代码演示了如何创建连接 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 元数据。
EC 2实例元数据
以下代码演示了如何创建连接 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 实例元数据。
Kerberos
注意
仅限 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 。
PLAIN SASL
注意
仅限 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 。