Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs Menu
Docs Home
/ / /
Node.js 드라이버
/ /

OIDC 인증 메커니즘

OIDC(OpenID Connect) 인증 메커니즘 하면 Azure 또는 Google Cloud Platform (GCP )과 같은 타사 ID 제공자 사용하여 MongoDB 에 인증할 수 있습니다.

MONGODB-OIDC 인증 메커니즘 사용하려면 Linux 플랫폼에서 실행 MongoDB Server v7.0 이상 버전이 필요합니다. 이 메커니즘은 MongoDB Atlas 또는 MongoDB Enterprise Advanced 에 인증할 때만 사용할 수 있습니다.

OIDC 인증에 대해 자세히 알아보기

OIDC 인증 위한 MongoDB Atlas 구성에 대해 자세히 학습 Atlas 설명서에서OIDC를 사용한 Workforce Identity Federation 설정을 참조하세요.

MongoDB 에서 OIDC 인증 사용하는 방법에 대해 자세히 학습하려면 MongoDB Server 매뉴얼에서 OIDC/OAuth 2.0oidcIdentityProviders 를 사용한 인증 및 권한 부여를 참조하세요.

다음 섹션에서는 MONGODB-OIDC 인증 메커니즘 사용하여 다양한 플랫폼에서 인증하는 방법을 설명합니다.

애플리케이션 이 Azure VM에서 실행되거나 IMDS(Azure 인스턴스 메타데이터 서비스)를 사용하는 경우, Node.js 드라이버의 내장 Azure 지원 사용하여 MongoDB 에 인증할 수 있습니다.

Azure IMDS OIDC를 인증 메커니즘 으로 지정하려면 연결 string 에서 다음 옵션을 설정하다 합니다.

  • username: Azure managed ID를 사용하는 경우 이를 managed ID의 클라이언트 ID 로 설정하다 . 그렇지 않으면 이 옵션을 생략합니다.

  • authMechanism: MONGODB-OIDC 로 설정합니다.

  • authMechanismProperties: ENVIRONMENT:azure,TOKEN_RESOURCE:<audience> 로 설정합니다. <audience> 자리 표시자를 MongoDB deployment 에 구성된 audience 매개변수의 값으로 바꿉니다.

다음 코드 예시 에서는 앞의 연결 옵션을 설정하다 하는 방법을 보여줍니다.

const { MongoClient } = require("mongodb");
const uri = "mongodb+srv://<username>@<hostname>:<port>/?authMechanism=MONGODB-OIDC"
+ "&authMechanismProperties=ENVIRONMENT:azure,TOKEN_RESOURCE:<audience>";
const client = new MongoClient(uri);

애플리케이션 Google Compute Engine VM에서 실행되거나 GCP 인스턴스 메타데이터 서비스를 사용하는 경우 Node.js 드라이버의 내장 GCP 지원 사용하여 MongoDB 에 인증할 수 있습니다.

GCP IMDS OIDC를 인증 메커니즘 으로 지정하려면 연결 string 에서 다음 옵션을 설정하다 합니다.

  • authMechanism: MONGODB-OIDC 로 설정합니다.

  • authMechanismProperties: ENVIRONMENT:gcp,TOKEN_RESOURCE:<audience> 로 설정합니다. <audience> 자리 표시자를 MongoDB deployment 에 구성된 audience 매개변수의 값으로 바꿉니다.

다음 코드 예시 에서는 앞의 연결 옵션을 설정하다 하는 방법을 보여줍니다.

const { MongoClient } = require("mongodb");
const uri = "mongodb+srv://<host>:<port>/?authMechanism=MONGODB-OIDC"
+ "&authMechanismProperties=ENVIRONMENT:gcp,TOKEN_RESOURCE:<audience>";
const client = new MongoClient(uri);

애플리케이션 Kubernetes 클러스터 에서 실행되는 경우 Node.js 드라이버의 내장 Kubernetes 지원 사용하여 MongoDB 에 인증할 수 있습니다.

Kubernetes OIDC를 인증 메커니즘 으로 지정하려면 연결 문자열 에서 다음 옵션을 설정하다 .

  • authMechanism: MONGODB-OIDC 로 설정합니다.

  • authMechanismProperties: ENVIRONMENT:k8s 로 설정합니다.

다음 코드 예시 에서는 앞의 연결 옵션을 설정하다 하는 방법을 보여줍니다.

import { MongoClient } from "mongodb";
const uri = "mongodb://<hostname>:<port>/?authMechanism=MONGODB-OIDC"
+ "&authMechanismProperties=ENVIRONMENT:k8s";
const client = new MongoClient(uri);

Node.js 운전자 Azure Functions를 포함한 모든 플랫폼에 대한 내장 지원 제공하지 않습니다. 대신 OIDC를 사용하여 이러한 플랫폼에서 인증하려면 사용자 지정 콜백 정의해야 합니다.

먼저, OIDC 인증 에 사용할 액세스 토큰을 검색하는 함수를 정의합니다. 이 함수에는 다음 서명이 있어야 합니다.

const myCallback = (params: OIDCCallbackParams): Promise<OIDCResponse> => { }

OIDCCallbackParams 매개변수에는 함수 내에서 액세스 할 수 있는 다음 속성이 포함되어 있습니다.

속성

timeoutContext

30 초 후에 인증 워크플로를 중단하는 AbortSignal

version

현재 OIDC API 버전

idpInfo

서버 에서 반환된 ID 제공자 정보

username

연결 string 에 포함된 사용자 이름 (있는 경우)

refreshToken

발급자에게 새 액세스 토큰을 요청 하는 새로 고침 토큰(있는 경우)

콜백 함수는 OIDCResponse 객체 를 반환해야 합니다. 이 객체 에는 다음과 같은 속성이 포함되어 있습니다.

속성

accessToken

인증 에 사용할 액세스 토큰입니다.

expiresInSeconds

선택 사항. 액세스 토큰이 만료될 때까지의 시간(초)입니다.

refreshToken

선택 사항. 발급자에게 새 액세스 토큰을 요청 하기 위한 새로 고침 토큰입니다.

다음 예시 에서는 로컬 파일 시스템의 access-token.dat 파일 에서 OIDC 액세스 토큰을 검색하는 콜백 함수를 보여줍니다.

const fs = require("node:fs");
const myCallback = (params: OIDCCallbackParams): Promise<OIDCResponse> => {
const token = fs.readFileSync("access-token.dat", "utf8");
return {
accessToken: token,
expiresInSeconds: 300,
refreshToken: token
};
}

콜백 함수를 정의한 후 이를 authMechanismProperties 매개변수의 일부로 MongoClient 생성자에 전달합니다. Node.js 운전자 는 다음 인증 패턴을 지원합니다.

  • 머신 인증: 사람의 상호 작용이 필요하지 않은 웹 서비스 및 기타 애플리케이션에서 사용됩니다. 이 구문의 예시 를 보려면 Machine Callback 탭 을 선택합니다.

  • 인간 인증: 데이터베이스 도구, 명령줄 유틸리티 및 인간의 직접적인 상호 작용과 관련된 기타 애플리케이션에서 사용됩니다. 이 구문의 예시 를 보려면 Human Callback 탭 을 선택합니다.

컴퓨터 인증 의 경우 다음 예시 와 같이 콜백 함수를 authMechanismProperties.OIDC_CALLBACK 속성 에 할당합니다.

const { MongoClient } = require("mongodb");
const uri = "mongodb+srv://<host>:<port>/?authMechanism=MONGODB-OIDC";
const client = new MongoClient(uri, {
authMechanismProperties: {
OIDC_CALLBACK: myCallback
}
});

인간 인증 의 경우 다음 예시 와 같이 콜백 함수를 authMechanismProperties.OIDC_HUMAN_CALLBACK 속성 에 할당합니다.

const { MongoClient } = require("mongodb");
const uri = "mongodb+srv://<host>:<port>/?authMechanism=MONGODB-OIDC";
const client = new MongoClient(uri, {
authMechanismProperties: {
OIDC_HUMAN_CALLBACK: myCallback
}
});

이 가이드에서 사용되는 메서드 또는 유형에 대해 자세히 알아보려면 다음 API 문서를 참조하세요.

돌아가기

AWS IAM

이 페이지의 내용