Overview
MongoDBは、アプリケーションを認証するために使用できる複数のメカニズムをサポートしています。 このページでは、これらのそれぞれのメカニズムを示すコード例が紹介されています。
Tip
このページに記載されているメカニズムの詳細については、各セクションに提供されているリンクを参照してください。
このページの認証例を使用するには、コード例をサンプルアプリケーションまたは独自のアプリケーションにコピーします。 <hostname>などのコード例にあるすべてのプレースホルダーを、 MongoDBデプロイに関連する値に置き換えてください。
サンプル アプリケーション
次のサンプルアプリケーションを使用して、このページのコード例をテストできます。 サンプル アプリケーションを使用するには、次の手順を実行します。
Cドライバーがインストールされていることを確認します。
次のコードをコピーし、新しい
.cファイルに貼り付けます。このページからコード例をコピーし、 ファイル内の指定された行に貼り付けます。
<mongoc/mongoc.h> <bson/bson.h>
int main(void) {
mongoc_uri_t* uri = NULL; mongoc_client_t *client = NULL; mongoc_database_t *database = NULL; bson_t *ping = NULL, reply = BSON_INITIALIZER; bson_error_t error;
mongoc_init();
// Start example code here
// End example code here
if (!client) { fprintf(stderr, "client initialization failure\n"); goto cleanup; }
database = mongoc_client_get_database(client, "admin"); ping = BCON_NEW("ping", BCON_INT32(1)); if (!mongoc_client_command_simple(client, "admin", ping, NULL, &reply, &error)) { fprintf(stderr, "%s\n", error.message); goto cleanup; } printf("Pinged your deployment. You successfully connected to MongoDB!\n");
cleanup: bson_destroy(&reply); bson_destroy(ping); mongoc_database_destroy(database); mongoc_client_destroy(client); mongoc_uri_destroy(uri); mongoc_cleanup();}SCRAM-SHA-256
次のコードは、 SCRAM-SHA-256認証メカニズムを使用して認証する方法を示しています。
const char *uri = "mongodb://<percentEncodedUsername>:<percentEncodedPassword>@<hostname>:<port>/?authMechanism=SCRAM-SHA-256&authSource=<authenticationDatabase>";mongoc_client_t *client = mongoc_client_new(uri);SCRAM-SHA- 256認証の詳細については、認証ガイドのSCRAM-SHA- 256を参照してください。
SCRAM-SHA-1
次のコードは、 SCRAM-SHA-1認証メカニズムを使用して認証する方法を示しています。
const char *uri = "mongodb://<percentEncodedUsername>:<percentEncodedPassword>@<hostname>:<port>/?authMechanism=SCRAM-SHA-1&authSource=<authenticationDatabase>";mongoc_client_t *client = mongoc_client_new(uri);SCRAM-SHA- 1認証の詳細については、認証ガイドのSCRAM-SHA- 1を参照してください。
MONGODB X.509
次のコードは、 X.509認証メカニズムを使用して認証するための接続 URI を作成する方法を示しています。
mongoc_client_t *client;mongoc_ssl_opt_t ssl_opts = {0};
ssl_opts.pem_file = "mycert.pem";
const char *uri = "mongodb://<percentEncodedUsername>@<hostname>:<port>/?authMechanism=MONGODB-X509";mongoc_client_t *client = mongoc_client_new(uri);mongoc_client_set_ssl_opts(client, &ssl_opts);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 で認証する方法を示します。
AmazonAmazon Web Services Web Services での認証の詳細については、 認証ガイドの MONGODB- 参照してください。Amazon Web Services
接続URI
次のコードは、接続 URI でAmazon Web Services の認証情報を渡し、MONGODB-AWS で認証する方法を示しています。
const char *uri = "mongodb://<awsIamAccessKeyId>:<awsIamSecretAccessKey>@<hostname>:<port>/?authMechanism=MONGODB-AWS";mongoc_client_t *client = mongoc_client_new(uri);接続 URI 認証情報を取得してAmazon Web Servicesで認証する方法の詳細については、 認証ガイドの「 接続 URI 」を参照してください。
外部認証情報
次のコードは、環境変数、 ECSメタデータ、または EC2インスタンスメタデータから認証情報を取得するときに、MONGODB-AWS で認証する方法を示しています。
const char *uri = "mongodb://<hostname>:<port>/?authMechanism=MONGODB-AWS";mongoc_client_t *client = mongoc_client_new(uri);外部認証情報を取得してAmazon Web Servicesで認証する方法の詳細については、 認証ガイドの次のセクションを参照してください。