AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

OpenID Connect(OIDC)認証

重要

MONGODB-OIDC認証メカニズムでは、 LinuxプラットフォームでMongoDB Server v7.0 以降を実行中必要があります。

MONGODB-OIDC 認証メカニズムにより、OpenID Connect (OIDC) トークンを使用して MongoDB Server に認証できます。C++ ドライバーは、ワークロード ID の OIDC 認証をサポートしています。ワークロード ID は、アプリケーション、サービス、スクリプト、コンテナなどのソフトウェア ワークロードに割り当てる ID で、他のサービスやリソースを認証してアクセスするために使用されます。

次のセクションでは、MONGODB-OIDC認証メカニズムを使用して様々なプラットフォームに認証する方法について説明します。

Tip

詳細情報

MONGODB-OIDC認証メカニズムの詳細については、MongoDB Server マニュアルのOpenID Connect 認証 とMongoDB Server パラメーター を参照してください。

このページのコード例では、次のプレースホルダーを使用します。

  • <hostname>: MongoDB Server 配置のネットワーク アドレス

  • <client_id>: Azure マネージド ID またはエンタープライズアプリケーションのクライアント ID またはアプリケーションID

  • <token-resource>: MongoDB Server 配置に構成されている audience サーバー パラメータの値

このページのコード例を使用するには、これらのプレースホルダーを独自の値に置き換えます。

アプリケーションが Azure VM 上で実行される場合、または Azure インスタンス メタデータ サービス (IMDS) を使用する場合は、C++ ドライバーに組み込まれている Azure サポートを使用して MongoDB Server に認証できます。

Azure IMDS 認証を使用するには、接続文字列に次のパラメータを含めます。

  • <client_id>: Azure マネージド ID を使用している場合は、管理対象 ID のクライアント ID にこれを設定します。

  • authMechanism: に設定します MONGODB-OIDC

  • authMechanismProperties: に設定します ENVIRONMENT:azure,TOKEN_RESOURCE:<token-resource>

次の例では、MONGODB-OIDC メカニズムを使用して MongoDB Server に認証します。

auto instance = mongocxx::instance();
auto uri = mongocxx::uri(
"mongodb+srv://<client_id>@<hostname>/"
"?authMechanism=MONGODB-OIDC"
"&authMechanismProperties=ENVIRONMENT:azure,"
"TOKEN_RESOURCE:<token-resource>");
auto client = mongocxx::client(uri);

Tip

アプリケーションが Azure VM で実行されており、その VM に関連付けられているマネージド ID が 1 つだけの場合は、接続文字列から <client_id> パラメーターを省略できます。

C++ ドライバーは、Azure Functions または Azure App Service Environment (ASE) の組み込みサポートを提供していません。これらのプラットフォームから MONGODB-OIDC 認証を使用するには、次の手順を実行します。

1

Azure SDK for C++ をインストールします。

2

mongocxx::options::client インスタンスで oidc_callback() メソッドを使用して、Azure::Identity::DefaultAzureCredential を使用して OIDC トークンを検索するコールバックを定義します。

auto instance = mongocxx::instance();
auto uri = mongocxx::uri("mongodb+srv://<client_id>@<hostname>/"
"?authMechanism=MONGODB-OIDC");
auto opts = mongocxx::options::client{};
opts.oidc_callback([](const mongocxx::oidc_callback_params &) {
Azure::Identity::DefaultAzureCredential credential;
Azure::Core::Credentials::TokenRequestContext token_request_ctx;
token_request_ctx.Scopes = {"<token-resource>/.default"};
auto access_token =
credential.GetToken(token_request_ctx, Azure::Core::Context{});
return mongocxx::oidc_credential(access_token.Token);
});
auto client = mongocxx::client(uri, opts);

C++ドライバーで mongocxx::clientオブジェクトを作成する方法、またはクライアント オプションを構成する方法の詳細については、次のAPIドキュメントを参照してください。