Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

Autenticación OpenID Connect (OIDC)

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.

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 servidor audience configurado 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.

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 como MONGODB-OIDC

  • authMechanismProperties: Configurado como ENVIRONMENT: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.

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:

1

Instale el SDK de Azure para C++.

2

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);

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: