개요
중요
MONGODB-OIDC 인증 메커니즘 사용하려면 Linux 플랫폼에서 실행 MongoDB Server v7.0 이상 버전이 필요합니다.
MONGODB-OIDC 인증 메커니즘을 사용하면 OIDC(OpenID Connect) 토큰을 사용하여 MongoDB Server에 인증할 수 있습니다. C++ 드라이버는 워크로드 ID에 대한 OIDC 인증을 지원합니다. 워크로드 ID는 다른 서비스 및 리소스를 인증하고 액세스하기 위해 애플리케이션, 서비스, 스크립트 또는 컨테이너 등 소프트웨어 워크로드에 할당하는 ID입니다.
다음 섹션에서는 MONGODB-OIDC 인증 메커니즘을 사용하여 다양한 플랫폼에 인증하는 방법을 설명합니다.
팁
자세한 정보
MONGODB-OIDC 인증 메커니즘에 대해 자세히 학습하려면 MongoDB Server 매뉴얼에서 OpenID Connect 인증 및 MongoDB Server 매개변수를 참조하세요.
코드 자리 표시자
이 페이지의 코드 예제에서는 다음 자리 표시자를 사용합니다.
<hostname>MongoDB Server 배포의 네트워크 주소<client_id>: Azure managed ID 또는 엔터프라이즈 애플리케이션의 Client ID 또는 애플리케이션 ID<token-resource>: MongoDB Server 배포서버에 구성된audience서버 매개변수의 값
이 페이지의 코드 예제를 사용하려면 이러한 자리 표시자를 원하는 값으로 바꾸세요.
Azure IMDS
애플리케이션이 Azure VM에서 실행되거나 IMDS(Azure 인스턴스 메타데이터 서비스)를 사용하는 경우, C++ 드라이버의 내장된 Azure 지원을 사용하여 MongoDB Server에 인증할 수 있습니다.
Azure IMDS 인증을 사용하려면 연결 문자열에 다음 매개변수를 포함하세요.
<client_id>: If you're using an Azure managed ID, set this to the client ID of the managed IDauthMechanism: 다음으로 설정MONGODB-OIDCauthMechanismProperties: 다음으로 설정ENVIRONMENT:azure,TOKEN_RESOURCE:<token-resource>
다음 예시에서는 MONGODB-OIDC 메커니즘을 사용하여 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);
팁
애플리케이션이 Azure VM에서 실행 중이고 VM과 연결된 managed ID가 하나만 있는 경우 연결 문자열에서 <client_id> 매개변수를 생략할 수 있습니다.
Azure Functions 및 앱 Service Environment
C++ 드라이버는 Azure Functions 또는 Azure 앱 Service Environment(ASE)에 대한 내장 지원을 제공하지 않습니다. 이러한 플랫폼에서 MONGODB-OIDC 인증을 사용하려면 다음 단계를 완료하세요.
사용자 지정 OIDC 콜백 정의
Azure::Identity::DefaultAzureCredential를 사용하여 OIDC 토큰을 조회하는 콜백을 정의하려면 mongocxx::options::client 인스턴스에서 oidc_callback() 메서드를 사용합니다.
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);
API 문서
C++ 드라이버에서 mongocxx::client 객체를 만들거나 클라이언트 옵션을 구성하는 방법에 대해 자세히 학습하려면 다음 API 설명서를 참조하세요.