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 mecanismo de autenticación MONGODB-OIDC le permite usar tokens de OpenID Connect (OIDC) para autenticarse en MongoDB Server. El driver de 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, servicio, script o contenedor, para autenticar 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 mecanismo de autenticación MONGODB-OIDC, consulte Autenticación OpenID Connect y Parámetros del servidor de MongoDB en el manual del servidor de 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 su implementación de MongoDB Server<client_id>: ID de cliente o ID de la aplicación de la identidad gestionada de Azure o de la aplicación empresarial<token-resource>Valor del parámetro del servidoraudienceconfigurado en la implementación de MongoDB Server
Para usar los ejemplos de código en esta página, reemplaza estos marcadores de posición con tus propios valores.
Azure IMDS
Si tu aplicación se ejecuta en una VM de Azure o utiliza el Servicio de metadatos de instancia de Azure (IMDS), puedes autenticarte en MongoDB Server utilizando la funcionalidad incorporada de Azure del driver C++.
Para utilizar la autenticación de Azure IMDS, incluya los siguientes parámetros en su cadena de conexión:
<client_id>: Si está utilizando una identidad administrada de Azure, configúrela con 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 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
Si su aplicación se ejecuta en una VM de Azure y sólo una identidad administrada está asociada a la VM, puede omitir el parámetro <client_id> de la cadena de conexión.
Azure Functions y App Service Environment
El driver de C++ no proporciona funcionalidad incorporada para Azure Functions o Azure App Service Environment (ASE). Para utilizar la autenticación MONGODB-OIDC de estas plataformas, complete los siguientes pasos:
Instale el SDK de Azure para C++
Instale el SDK de Azure para C++.
Definir una función de retorno de OIDC personalizada
Utilice el método oidc_callback() en su instancia mongocxx::options::client para definir una función de retorno 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 driver de C++ o configurar las opciones del cliente, consulte la siguiente documentación de la API: