Docs Menu
Docs Home
/ / /
C++ ドライバー

データの保護

項目一覧

  • Overview
  • サンプル アプリケーション
  • SCRAM-SHA-256
  • SCRAM-SHA-1
  • MONGODB X.509
  • MongoDB-AWS
  • 接続URI
  • 環境変数
  • AssumeRoleWithWebIdentity requests
  • ECS Metadata
  • EC 2インスタンス メタデータ
  • Kerberos
  • PLAIN SASL

MongoDBは、アプリケーションを認証するために使用できる複数のメカニズムをサポートしています。 このページでは、これらのそれぞれのメカニズムを示すコード例が紹介されています。

Tip

このページの認証メカニズムの詳細については、 認証メカニズムエンタープライズ認証メカニズムのページを参照してください。

このページの認証例えを使用するには、コード例をサンプル アプリケーションまたは独自のアプリケーションにコピーします。 <hostname>など、コード例にあるすべてのプレースホルダーを、MongoDB 配置に関連する値に置き換えてください。

次のサンプルアプリケーションを使用して、このページのコード例をテストできます。 サンプル アプリケーションを使用するには、次の手順を実行します。

  1. プロジェクトが C++ ドライバーをインポートできるロケーションに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}

次のコードは、 SCRAM-SHA-256認証メカニズムを使用して認証するための接続 URI を作成する方法を示しています。

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 を作成する方法を示しています。

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を参照してください。

次のコードは、 X.509認証メカニズムを使用して認証するための接続 URI を作成する方法を示しています。

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インスタンスのメタデータ

各セクションでは、指定されたソースからAmazon Web Servicesの認証情報を取得するときに MONGODB-AWS で認証するための接続 URI を作成する方法を示します。

AmazonAmazon Web Services Web Services での認証の詳細については、 認証ガイドの MONGODB- 参照してください。Amazon Web Services

次のコードは、MONGODB-AWS で認証するためのAmazon Web Servicesの認証情報を含む接続 URI を作成する方法を示しています。

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);

次のコードは、環境変数から認証情報を取得するときにMONGODB-AWSで認証するための接続 URI を作成する方法を示しています。 このコードを実行中する前に、環境変数が指定されていることを確認してください。

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

環境変数を使用してAmazon Web Servicesで認証する方法の詳細については、「環境変数 」を参照してください。

次のコードは、 AssumeRoleWithWebIdentityリクエストから認証情報を取得するときにMONGODB-AWSで認証するための接続 URI を作成する方法を示しています。 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 requests 」を参照してください。

次のコードは、 ECSメタデータから認証情報を取得するときにMONGODB-AWSで認証するための接続 URI を作成する方法を示しています。 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インスタンスメタデータから認証情報を取得するときにMONGODB-AWSで認証するための接続 URI を作成する方法を示しています。 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 でのみ利用できます。

次のコードは、Kerberos で認証するための接続 URI を作成する方法を示しています。

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

Kerberos による認証の詳細については、エンタープライズ認証ガイドの「 Kerberos 」を参照してください。

注意

MongoDB Enterprise のみ

PLAIN SASL 認証は MongoDB Enterprise でのみ利用できます。

次のコードは、PLAIN SASL で認証するための接続 URI を作成する方法を示しています。

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

PLAIN SASL による認証の詳細については、エンタープライズ認証ガイドの「 PLAIN SASL 」を参照してください。

戻る

コマンドの実行