Visão geral
Importante
O mecanismo de autenticação do MONGODB-OIDC exige MongoDB Server v7.0 ou posterior executando em uma plataforma Linux.
O mecanismo de autenticação MONGODB-OIDC permite que você use tokens OpenID Connect (OIDC) para autenticar no MongoDB Server. O driver C++ oferece suporte à autenticação OIDC para identidades de carga de trabalho. Uma identidade de carga de trabalho é uma identidade que você atribui a uma carga de trabalho de software, como um aplicativo, serviço, script ou contêiner, para autenticar e acessar outros serviços e recursos.
As seções a seguir descrevem como usar o mecanismo de autenticação MONGODB-OIDC para autenticar em várias plataformas.
Dica
MAIS INFORMAÇÕES
Para saber mais sobre o mecanismo de autenticação MONGODB-OIDC, consulte Autenticação do OpenID Connect e Parâmetros do MongoDB Server no manual do MongoDB Server.
Espaços reservados de código
Os exemplos de código nesta página usam os seguintes espaços reservados:
<hostname>: Endereço de rede da sua implantação do MongoDB Server<client_id>ID do cliente ou ID do aplicativo de sua identidade gerenciada pelo Azure ou aplicativo empresarial<token-resource>: Valor do parâmetro de servidoraudienceconfigurado em sua implantação do MongoDB Server
Para usar os exemplos de código nesta página, substitua esses espaços reservados por seus próprios valores.
IMDS do Azure
Se o seu aplicativo for executado em uma VM do Azure ou usar o Serviço de Metadados de Instância do Azure (IMDS), você poderá autenticar no MongoDB Server usando o suporte integrado do driver C++ da Azure.
Para usar a autenticação do Azure IMDS, inclua os seguintes parâmetros em sua string de conexão:
<client_id>Se você estiver usando uma identidade gerenciada pelo Azure, defina-a como a ID do cliente da identidade gerenciadaauthMechanism: Definido comoMONGODB-OIDCauthMechanismProperties: Definido comoENVIRONMENT:azure,TOKEN_RESOURCE:<token-resource>
O exemplo a seguir usa o mecanismo MONGODB-OIDC para autenticar no 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);
Dica
Se seu aplicativo estiver em execução em uma VM do Azure e somente uma identidade gerenciada estiver associada à VM, você poderá omitir o parâmetro <client_id> da string de conexão.
Azure Functions e App Service Environment
O driver C++ não oferece suporte integrado para Azure Functions ou Azure App Service Environment (ASE). Para usar a autenticação MONGODB-OIDC dessas plataformas, conclua as seguintes etapas:
Instale o Azure SDK para C++
Instale o Azure SDK para C++.
Definir uma chamada de resposta OIDC personalizada
Use o método oidc_callback() em sua instância mongocxx::options::client para definir uma chamada de resposta que recupera um token OIDC usando 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);
Documentação da API
Para saber mais sobre como criar um objeto mongocxx::client no driver C++ ou configurar opções de cliente, consulte a seguinte documentação da API: