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 MONGODB-OIDC mecanismo de autenticação do permite utilizar tokens OpenID Connect (OIDC) para autenticar no MongoDB Server. O driver C++ é compatível com a autenticação OIDC para identidades de volume de trabalho. Uma identidade de volume de trabalho é uma identidade que você atribui a um volume de trabalho de software, como um aplicação, 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
To learn more about the MONGODB-OIDC authentication mechanism, see OpenID Connect Authentication and MongoDB Server Parameters in the MongoDB Server manual.
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 aplicação for executado em uma VM do Azure ou usar o Azure Instance Metadata Service (IMDS), você poderá autenticar no MongoDB Server usando o suporte interno do Azure driver C++ .
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++
Install the Azure SDK for 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: