Overview
MongoDBは、アプリケーションを認証するために使用できる複数のメカニズムをサポートしています。 このページでは、これらのそれぞれのメカニズムを示すコード例が紹介されています。
Tip
このページの認証メカニズムの詳細については、認証メカニズムおよびエンタープライズ認証メカニズムのページを参照してください。
To use an authentication example from this page, copy the code example into the sample application or your own application. Be sure to replace all placeholders in the code examples, such as <hostname>, with the relevant values for your MongoDB deployment.
サンプル アプリケーション
次のサンプルアプリケーションを使用して、このページのコード例をテストできます。 サンプル アプリケーションを使用するには、次の手順を実行します。
プロジェクトが C++ ドライバーをインポートできるロケーションに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
次のコードは、 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
次のコードは、 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を参照してください。
MONGODB X.509
次のコードは、 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-AWS認証メカニズムを使用してMongoDBに接続する方法を示します。 MONGODB-AWS メカニズムを使用すると、 C++ドライバーは次のソースからAmazon Web Servicesの認証情報をリストされている順序で検索しようとします。
接続 URI に渡される名前付きパラメータ
環境変数
Amazon Web Services EKS AssumeRoleWithWebIdentityリクエスト
ECSコンテナのメタデータ
EC 2インスタンスのメタデータ
各セクションでは、指定されたソースからAmazon Web Servicesの認証情報を取得するときに MONGODB-AWS で認証するための接続 URI を作成する方法を示します。
AmazonAmazon Web Services Web Services での認証の詳細については、 認証ガイドの MONGODB- 参照してください。Amazon Web Services
接続URI
次のコードは、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 requests
次のコードは、 AssumeRoleWithWebIdentityリクエストから認証情報を取得するときにMONGODB-AWSで認証するための接続 URI を作成する方法を示しています。 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 requests 」を参照してください。
ECS Metadata
次のコードは、 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インスタンス メタデータ
次のコードは、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 インスタンス メタデータ 」を参照してください。
Kerberos
注意
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 」を参照してください。
PLAIN SASL
注意
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 」を参照してください。