Overview
Importante
El mecanismo de autenticación MONGODB-OIDC requiere MongoDB Server v7.0 o una versión posterior que se ejecute en una plataforma Linux.
El MONGODB-OIDC mecanismo de autenticación permite usar tokens OpenID Connect (OIDC) para autenticarse en MongoDB Server. El controlador C++ admite la autenticación OIDC para identidades de carga de trabajo. Una identidad de carga de trabajo es una identidad que se asigna a una carga de trabajo de software, como una aplicación, un servicio, un script o un contenedor, para autenticarse y acceder a otros servicios y recursos.
Las siguientes secciones describen cómo utilizar el mecanismo de autenticación MONGODB-OIDC para autenticarse en varias plataformas.
Tip
Más información
Para obtener más información sobre el MONGODB-OIDC mecanismo de autenticación, consulte Autenticación de OpenID Connect y parámetros del servidor MongoDB en el manual del servidor MongoDB.
Marcadores de posición de código
Los ejemplos de código en esta página utilizan los siguientes marcadores de posición:
<hostname>Dirección de red de la implementación de su servidor MongoDB<client_id>: ID de cliente o ID de aplicación de su identidad administrada de Azure o aplicación empresarial<token-resource>: Valor del parámetro del servidoraudienceconfigurado en la implementación de su servidor MongoDB.
Para usar los ejemplos de código en esta página, reemplaza estos marcadores de posición con tus propios valores.
Azure IMDS
Si su aplicación se ejecuta en una máquina virtual de Azure o utiliza el Servicio de metadatos de instancia de Azure (IMDS), puede autenticarse en el servidor MongoDB mediante la compatibilidad integrada con Azure del controlador de C++.
Para usar la autenticación de Azure IMDS, incluya los siguientes parámetros en su cadena de conexión:
<client_id>Si utiliza una identidad administrada de Azure, establezca este valor en el ID de cliente de la identidad administrada.authMechanism: Configurado comoMONGODB-OIDCauthMechanismProperties: Configurado comoENVIRONMENT:azure,TOKEN_RESOURCE:<token-resource>
El siguiente ejemplo utiliza el mecanismo MONGODB-OIDC para autenticarse en el servidor MongoDB:
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
Si su aplicación se ejecuta en una máquina virtual de Azure y solo hay una identidad administrada asociada a la máquina virtual, puede omitir el parámetro <client_id> de la cadena de conexión.
Entorno de Azure Functions y App Service
El controlador de C++ no ofrece compatibilidad integrada con Azure Functions ni con Azure App Service Environment (ASE). Para usar la autenticación MONGODB-OIDC desde estas plataformas, siga los siguientes pasos:
Instale el SDK de Azure para C++.
Instale el SDK de Azure para C++.
Defina una función de devolución de llamada OIDC personalizada.
Utilice el método oidc_callback() en su instancia mongocxx::options::client para definir una función de devolución de llamada que recupere un token OIDC mediante Azure::Identity::DefaultAzureCredential:
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);
Documentación de la API
Para obtener más información sobre cómo crear un objeto mongocxx::client en el controlador C++ o configurar las opciones del cliente, consulte la siguiente documentación de la API: