Overview
重要
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 IMDS
アプリケーションが Azure VM 上で実行される場合、または Azure インスタンス メタデータ サービス (IMDS) を使用する場合は、C++ ドライバーに組み込まれている Azure サポートを使用して MongoDB Server に認証できます。
Azure IMDS 認証を使用するには、接続文字列に次のパラメータを含めます。
<client_id>: Azure マネージド ID を使用している場合は、管理対象 ID のクライアント ID にこれを設定します。authMechanism: に設定しますMONGODB-OIDCauthMechanismProperties: に設定します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> パラメーターを省略できます。
Azure Functions および App Service Environment
C++ ドライバーは、Azure Functions または Azure App Service Environment (ASE) の組み込みサポートを提供していません。これらのプラットフォームから MONGODB-OIDC 認証を使用するには、次の手順を実行します。
カスタム OIDC コールバックを定義する
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);
API ドキュメント
C++ドライバーで mongocxx::clientオブジェクトを作成する方法、またはクライアント オプションを構成する方法の詳細については、次のAPIドキュメントを参照してください。