文档菜单
文档首页
/ / /
C驱动程序

保护您的数据

本页面内容

  • 概述
  • 示例应用程序
  • SCRAM-SHA-256
  • SCRAM-SHA-1
  • MONGODB X.509
  • MONGODB-AWS
  • 连接URI
  • 外部凭证

MongoDB 支持多种机制,您可以使用这些机制对您的应用程序进行身份验证。本页面包含代码示例,演示了每种机制。

提示

要了解本页面上显示的任何机制,请参阅每个部分中提供的链接。

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

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

  1. 确保已安装C驱动程序。

  2. 复制以下代码,并将其粘贴到一个新的.c文件中。

  3. 从本页复制一个代码示例,并将其粘贴到文件中的指定行。

1#include <mongoc/mongoc.h>
2#include <bson/bson.h>
3
4int main(void) {
5
6 mongoc_uri_t* uri = NULL;
7 mongoc_client_t *client = NULL;
8 mongoc_database_t *database = NULL;
9 bson_t *ping = NULL, reply = BSON_INITIALIZER;
10 bson_error_t error;
11
12 mongoc_init();
13
14 // Start example code here
15
16 // End example code here
17
18 database = mongoc_client_get_database (client, "admin");
19
20 ping = BCON_NEW ("ping", BCON_INT32 (1));
21
22 if (!mongoc_client_command_simple (client, "admin", ping, NULL, &reply, &error)) {
23 fprintf (stderr, "%s\n", error.message);
24 goto cleanup;
25 }
26 printf ("Pinged your deployment. You successfully connected to MongoDB!\n");
27
28 cleanup:
29 bson_destroy (&reply);
30 bson_destroy (ping);
31 mongoc_database_destroy (database);
32 mongoc_client_destroy (client);
33 mongoc_uri_destroy (uri);
34 mongoc_cleanup ();
35}

以下代码展示了如何使用SCRAM-SHA-256认证机制进行认证

const char *uri = "mongodb://<percent-encoded username>:<percent-encoded password>@<hostname>:<port>/?authMechanism=SCRAM-SHA-256&authSource=<authentication database>";
mongoc_client_t *client = mongoc_client_new(uri);

有关SCRAM-SHA-256认证的更多信息,请参阅认证指南中的SCRAM-SHA-256

以下代码展示了如何使用SCRAM-SHA-1认证机制进行认证

const char *uri = "mongodb://<percent-encoded username>:<percent-encoded password>@<hostname>:<port>/?authMechanism=SCRAM-SHA-1&authSource=<authentication database>";
mongoc_client_t *client = mongoc_client_new(uri);

有关SCRAM-SHA-1认证的更多信息,请参阅认证指南中的SCRAM-SHA-1

以下代码展示了如何创建一个连接URI,用于通过X.509认证机制进行认证

mongoc_client_t *client;
mongoc_ssl_opt_t ssl_opts = {0};
ssl_opts.pem_file = "mycert.pem";
const char *uri = "mongodb://<percent-encoded username>@<hostname>:<port>/?authMechanism=MONGODB-X509";
mongoc_client_t *client = mongoc_client_new(uri);
mongoc_client_set_ssl_opts(client, &ssl_opts);

要了解更多关于X.509认证的信息,请参阅认证指南中的MONGODB-X509

以下部分展示了如何通过MONGODB-AWS认证机制连接到MongoDB。当使用MONGODB-AWS机制时,C驱动程序将按以下顺序尝试从以下来源检索您的AWS凭证:

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

  2. 环境变量

  3. AWS EKS AssumeRoleWithWebIdentity请求

  4. ECS容器元数据

  5. EC2实例元数据

每个部分都展示了如何从连接URI或替代外部来源检索AWS凭证时使用MONGODB-AWS进行认证。

要了解更多关于与AWS认证的信息,请参阅认证指南中的MONGODB-AWS

以下代码示例展示了如何在连接URI中传递AWS凭证以使用 MONGODB-AWS 进行认证。

const char *uri = "mongodb://<AWS IAM access key ID>:<AWS IAM secret access key>@<hostname>:<port>/?authMechanism=MONGODB-AWS");
mongoc_client_t *client = mongoc_client_new(uri);

要了解通过获取连接URI凭证来使用AWS进行认证的更多信息,请参阅认证指南中的连接URI

以下代码示例展示了如何从环境变量、ECS元数据或EC2实例元数据获取凭证来使用 MONGODB-AWS 进行认证。

const char *uri = "mongodb://<hostname>:<port>/?authMechanism=MONGODB-AWS");
mongoc_client_t *client = mongoc_client_new(uri);

要了解通过获取外部凭证来使用AWS进行认证的更多信息,请参阅认证指南中的以下章节:

返回

集群监控