문서 메뉴

문서 홈애플리케이션 개발MongoDB 드라이버C#/.NET

인증 메커니즘.

이 페이지의 내용

  • 개요
  • 인증 메커니즘 지정
  • 메커니즘
  • 기본값
  • SCRAM-SHA-256
  • SCRAM-SHA-1
  • MONGODB-AWS
  • X.509
  • API 문서

이 가이드에서는 MongoDB Community 에디션에서 제공되는 인증 메커니즘을 사용하여 MongoDB로 인증하는 방법을 배울 수 있습니다. 인증 메커니즘은 연결 전에 보안을 보장하기 위해 드라이버와 서버가 클라이언트의 신원을 확인하는 프로세스입니다.

최신 버전의 MongoDB Community Edition에서 다음 인증 메커니즘을 사용할 수 있습니다.

  • SCRAM-SHA-256

  • SCRAM-SHA-1

  • MONGODB-AWS

  • X.509

GSSAPI/Kerberos 또는 LDAP를 사용해 인증하려면 엔터프라이즈 인증 메커니즘 기본 사항 페이지를 참조하세요. MongoDB cluster에 대한 연결 설정에 대한 자세한 내용은 연결 가이드를 참조하세요.

다음 방법 중 하나를 사용하여 MongoDB에 연결할 때 인증 메커니즘 및 자격 증명을 지정할 수 있습니다.

  • 연결 문자열(연결 URI 라고도 함)은 MongoDB deployment에 연결하는 방법과 연결된 동안 작동하는 방법을 드라이버에 알려주는 문자열입니다.

  • 지원되는 인증 메커니즘을 위한 팩토리 메서드로 MongoCredential 클래스에 포함되어 있습니다.

다음 예제에는 다음 자리 표시자를 사용하는 코드 예제가 포함되어 있습니다.

  • <username> - MongoDB 사용자 이름

  • <password> - MongoDB 사용자의 비밀번호입니다.

  • <hostname> - 클라이언트가 액세스할 수 있는 MongoDB 서버의 네트워크 주소입니다.

  • <port> - MongoDB 서버의 포트 번호입니다.

  • <authenticationDb> - 사용자의 인증 데이터가 포함된 MongoDB database입니다. 이 매개 변수를 생략하면 드라이버는 기본값 admin을(를) 사용합니다.

기본 인증 메커니즘 설정은 서버가 지원하는 MongoDB 버전에 따라 다음의 인증 메커니즘 중 하나를 사용합니다.

  • SCRAM-SHA-256

  • SCRAM-SHA-1

  • MONGODB-CR

참고

MongoDB 버전 4.0은 SCRAM을 기본 메커니즘으로 사용하며 더 이상 MONGODB-CR을 지원하지 않습니다.

기본값 인증 메커니즘을 지정하는 데 해당하는 구문을 보려면 Connection String 또는 MongoCredential 탭을 선택하세요.

SCRAM-SHA-256 SHA-256 알고리즘으로 암호화된 사용자 이름과 비밀번호를 사용하여 사용자를 인증하는 SCRAM(솔티드 챌린지-응답 인증 메커니즘)입니다.

다음과 같이 연결 문자열을 사용하여 SCRAM-SHA-256 인증 메커니즘을 지정할 수 있습니다.

var mongoClient = new MongoClient("mongodb://<username>:<password>@<hostname>:<port>/?authSource=<authenticationDb>&authMechanism=SCRAM-SHA-256");

기본 메커니즘

MongoDB 4.0 버전 이상에서는 MongoDB 서버 버전이 지원하는 경우 기본 인증 메커니즘으로 SCRAM-SHA-256을(를)사용합니다.

기본 메커니즘 지정에 대해 자세히 알아보려면 기본값을 참조하세요.

SCRAM-SHA-1 SHA-1 알고리즘으로 암호화된 사용자 이름과 암호를 사용하여 사용자를 인증하는 솔티드 챌린지 응답 메커니즘(SCRAM)입니다.

다음과 같이 연결 문자열을 사용하여 SCRAM-SHA-1 인증 메커니즘을 지정할 수 있습니다.

var mongoClient = new MongoClient("mongodb://<username>:<password>@<hostname>:<port>/?authSource=<authenticationDb>&authMechanism=SCRAM-SHA-1");

기본 메커니즘

MongoDB 버전 4.0은 서버가 SCRAM-SHA-256을 지원하지 않는 경우 기본 인증 메커니즘으로 SCRAM-SHA-1을 사용합니다.

기본 메커니즘 지정에 대해 자세히 알아보려면 기본값을 참조하세요.

참고

MONGODB-AWS 인증 메커니즘은 MongoDB Atlas의 MongoDB deployment에만 사용할 수 있습니다.

MONGODB-AWS 인증 메커니즘은 AWS IAM(Amazon Web Services Identity and Access Management) 자격 증명을 사용해 사용자를 인증합니다. 자격 증명을 명시적으로 지정하거나 외부 소스에서 자동으로 검색하도록 드라이버에 지시할 수 있습니다.

다음 섹션에는 다음 자리 표시자를 사용하는 코드 예제가 포함되어 있습니다.

  • <awsKeyId> - AWS 액세스 키 ID의 값

  • <awsSecretKey> - AWS 시크릿 액세스 키의 값

  • <awsSessionToken> - AWS 세션 토큰의 값

AWS IAM으로 MongoDB Atlas를 구성하는 방법에 대해 자세히 알아보려면 AWS IAM 역할로 비밀번호 없는 인증 설정 가이드를 참조하세요.

MongoCredential 객체를 사용하거나 연결 문자열의 일부로 MongoClientSettings 객체에 대한 AWS IAM 자격 증명을 제공할 수 있습니다. Connection String 또는 MongoCredential 탭을 선택해 자격 증명을 지정하는 구문을 확인하세요.

MongoClientSettings에서 AWS IAM 자격 증명을 지정하는 대신 .NET/C# 드라이버에 AWS SDK를 사용하여 외부 소스에서 자격 증명을 자동으로 검색하도록 지시할 수 있습니다. 드라이버에 자격 증명을 검색하도록 지시하려면 다음 작업을 수행하세요.

  • MONGODB-AWS를 인증 메커니즘으로 지정하기

  • 인증 소스를 MongoDB 외부로 지정합니다.

  • 적절한 위치에 자격 증명을 설정합니다.

MongoCredential 객체를 사용하거나 연결 문자열의 일부로 인증 메커니즘과 소스를 지정할 수 있습니다. Connection String 또는 MongoCredential 탭을 선택하여 MONGODB-AWS 인증 메커니즘 및 외부 인증 소스를 지정하기 위한 해당 구문을 확인합니다.

인증 메커니즘과 소스를 지정한 후에는 자격 증명 유형에 적합한 위치에 자격 증명을 설정해야 합니다. .NET/C# 드라이버는 아래에 나열된 순서대로 각 위치에서 자격 증명을 확인합니다.

  • 웹 ID 공급자

  • 공유된 AWS 자격 증명 파일

  • 환경 변수

  • ECS 컨테이너 자격 증명

  • EC2 container 자격 증명

OIDC(OpenID Connect)와 호환되는 웹 ID 제공자를 사용해 Amazon Elastic Kubernetes Service(EKS) 또는 기타 서비스에 인증할 수 있습니다. 웹 ID 제공자를 사용하려면 다음 예시와 같이 bash 또는 유사한 셸을 사용해 환경 변수에 이 파일의 절대 경로를 설정하여 OIDC 토큰이 포함된 파일을 만든 다음 이 파일의 절대 경로를 설정하면 됩니다.

export AWS_WEB_IDENTITY_TOKEN_FILE=<absolute path to file containing your OIDC token>

공유된 AWS 자격 증명 파일의 프로필을 사용해 인증하려면 텍스트 편집기, .NET용 AWS SDK 또는 AWS CLI를 사용하여 적절한 자격 증명 파일을 생성하면 됩니다.

환경 변수에서 직접 자격 증명을 검색하려면 bash 또는 유사한 셸을 사용해 다음 환경 변수를 설정하세요.

export AWS_ACCESS_KEY_ID=<awsKeyId>
export AWS_SECRET_ACCESS_KEY=<awsSecretKey>
export AWS_SESSION_TOKEN=<awsSessionToken>

참고

해당 역할에 대해 AWS 세션 토큰이 필요하지 않은 경우 AWS_SESSION_TOKEN이 포함된 줄을 생략하세요.

ECS 컨테이너 자격 증명을 사용하여 인증하려면 bash 또는 유사한 셸을 사용하여 환경 변수에서 ECS 엔드포인트의 URI를 설정합니다. 해당 환경 변수를 지정하는 구문을 보려면 Full ECS URI 또는 Relative ECS URI 탭을 선택합니다.

EC2 container 자격 증명을 사용해 인증하려면 앞서 언급한 환경 변수의 설정 여부를 확인하세요. 드라이버는 기본 IPv4 EC2 인스턴스 메타데이터 엔드포인트에서 자격 증명을 가져옵니다.

X.509 인증 메커니즘은 TLSX.509 사용합니다. 클라이언트 인증서의 고유 이름으로 식별되는 인증서로 사용자를 인증합니다.X.509 인증 메커니즘을 지정하면 서버는 클라이언트 인증서의 주체 이름을 사용하여 연결을 인증합니다.

TLS/SSL 사용에 대한 자세한 내용은 TLS/SSL 가이드를 참조하세요.

X.509 인증서에 대해 자세히 알아보려면 X.509 서버 수동 항목을 참조하세요.

X.509 인증 메커니즘을 지정하는 데 해당하는 구문을 보려면 Connection String 또는 MongoCredential 탭을 선택하세요.

이 가이드에서 설명하는 메서드나 유형에 대해 자세히 알아보려면 다음 API 설명서를 참조하세요.

← Stable API