保护您的数据
概述
MongoDB 支持多种机制,您可以使用这些机制对您的应用程序进行身份验证。本页面包含代码示例,演示了每种机制。
提示
要了解本页面上显示的任何机制,请参阅每个部分中提供的链接。
要从本页面使用身份验证示例,请将代码示例复制到示例应用程序或您自己的应用程序。请确保用您MongoDB部署的相关值替换代码示例中的所有占位符,例如<hostname>
。
示例应用程序
您可以使用以下示例应用程序测试本页上的代码示例。要使用示例应用程序,请执行以下步骤
确保已安装C驱动程序。
复制以下代码,并将其粘贴到一个新的
.c
文件中。从本页复制一个代码示例,并将其粘贴到文件中的指定行。
1 2 3 4 int 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
以下代码展示了如何使用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
以下代码展示了如何使用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。
mongodb X.509
以下代码展示了如何创建一个连接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-AWS认证机制连接到MongoDB。当使用MONGODB-AWS机制时,C驱动程序将按以下顺序尝试从以下来源检索您的AWS凭证:
传递给连接URI的命名参数
环境变量
AWS EKS AssumeRoleWithWebIdentity请求
ECS容器元数据
EC2实例元数据
每个部分都展示了如何从连接URI或替代外部来源检索AWS凭证时使用MONGODB-AWS进行认证。
要了解更多关于与AWS认证的信息,请参阅认证指南中的MONGODB-AWS。
连接URI
以下代码示例展示了如何在连接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进行认证的更多信息,请参阅认证指南中的以下章节: