Docs Menu
Docs Home
/ / /
C#/.NET
/

엔터프라이즈 인증 메커니즘

이 페이지의 내용

  • 개요
  • GSSAPI/Kerberos로 인증
  • additionalProperties
  • LDAP(PLAIN)로 인증
  • API 문서

이 가이드에서는 MongoDB Enterprise Edition에서만 사용할 수 있는 인증 메커니즘 을 사용하여 MongoDB로 인증하는 방법을 배울 수 있습니다. 인증 메커니즘은 드라이버와 서버가 연결 전에 보안을 보장하기 위해 클라이언트의 ID를 확인하는 프로세스입니다.

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

  • GSSAPI/Kerberos

  • LDAP (Plain)

다른 메커니즘을 사용하여 인증하려면 인증 메커니즘 기본 사항 페이지를 참조하세요. MongoDB cluster 에 대한 연결 설정에 대한 자세한 내용은 연결 가이드를 참조하세요.

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

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

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

일반 보안 서비스 API(GSSAPI) 인증 메커니즘을 통해 사용자는 사용자의 주체 이름을 사용하여 Kerberos 서비스를 인증할 수 있습니다.

다음 예에서는 다음 자리 표시자를 사용하여 인증 메커니즘을 지정합니다.

  • <username>:URL 인코딩 주체 이름 예: "username%40REALM.ME"

  • <password>: Kerberos 사용자의 비밀번호

  • <hostname>: 클라이언트가 액세스할 수 있는 MongoDB Server의 네트워크 주소

Connection String 또는 MongoCredential 탭을 선택하여 GSSAPI/Kerberos 인증 메커니즘을 지정하는 데 해당하는 구문을 확인합니다.

var mongoClient = new MongoClient("mongodb://<username>:<password>@<hostname>/?authMechanism=GSSAPI");
var credential = MongoCredential.CreateGssapiCredential("<username>", "<password>");
var settings = MongoClientSettings.FromConnectionString("<connection string>");
settings.Credential = credential;
var mongoClient = new MongoClient(settings);

비밀번호 생략

다음 중 하나에 해당하는 경우 비밀번호를 생략할 수 있습니다.

  • Windows에서 애플리케이션을 실행하는 프로세스 소유자는 인증이 필요한 사용자와 동일합니다.

  • Linux에서 사용자가 kinit username@REALM.COM 을(를) 통해 키탭을 초기화했습니다.

연결 문자열을 사용하거나 MongoCredential 클래스의 팩토리 메서드를 사용하여 인증 메커니즘에 추가 속성을 지정할 수 있습니다.

다음 예는 DNS 서버를 사용하여 호스트의 정규화된 도메인 이름을 검색하는 방법을 보여 줍니다.

var mongoClient = new MongoClient("mongodb://<db_username>:<db_password>@<hostname>/?authMechanism=GSSAPI&authMechanismProperties=CANONICALIZE_HOSTNAME:true");
var credential = MongoCredential.CreateGssapiCredential("<db_username>", "<db_passwordpassword>");
credential = credential.WithMechanismProperty("CANONICALIZE_HOST_NAME", "true");
var settings = MongoClientSettings.FromConnectionString("<connection string>");
settings.Credential = credential;
var mongoClient = new MongoClient(settings);

다음 예에서는 사용자의 영역이 서비스의 영역과 다른 경우 사용자의 영역을 지정하는 방법을 보여 줍니다.

var mongoClient = new MongoClient("mongodb://<db_username>:<db_password>@<hostname>/?authMechanism=GSSAPI&authMechanismProperties=SERVICE_REALM:<user's realm>");
var credential = MongoCredential.CreateGssapiCredential("<db_username>", "<db_password>");
credential = credential.WithMechanismProperty("SERVICE_REALM", "<user's realm>");
var settings = MongoClientSettings.FromConnectionString("<connection string>");
settings.Credential = credential;
var mongoClient = new MongoClient(settings);

다음 예시에서는 기본 mongodb가 아닌 경우 서비스 이름을 지정하는 방법을 보여줍니다.

var mongoClient = new MongoClient("mongodb://<db_username>:<db_password>@<hostname>/?authMechanism=GSSAPI&authMechanismProperties=SERVICE_NAME:<service name>");
var credential = MongoCredential.CreateGssapiCredential("<db_username>", "<db_password>");
credential = credential.WithMechanismProperty("SERVICE_NAME", "<service name>");
var settings = MongoClientSettings.FromConnectionString("<connection string>");
settings.Credential = credential;
var mongoClient = new MongoClient(settings);

다음 예에서는 여러 인증 메커니즘 속성을 지정하는 방법을 보여 줍니다.

var mongoClient = new MongoClient("mongodb://<db_username>:<db_password>@<hostname>/?authMechanism=GSSAPI&authMechanismProperties=SERVICE_NAME:<service name>,SERVICE_REALM:<user's realm>");
var credential = MongoCredential.CreateGssapiCredential("<db_username>", "<db_password>");
credential = credential.WithMechanismProperty("SERVICE_REALM", "<user's realm>")
.WithMechanismProperty("SERVICE_NAME", "<service name>");
var settings = MongoClientSettings.FromConnectionString("<connection string>");
settings.Credential = credential;
var mongoClient = new MongoClient(settings);

디렉토리 서버 사용자 이름 및 비밀번호를 사용하여 LDAP(Lightweight Directory Access Protocol) 서버에 인증할 수 있습니다.

다음 예에서는 다음 자리 표시자를 사용하여 인증 메커니즘을 지정합니다.

  • <username>: LDAP 사용자 이름

  • <password>: LDAP 비밀번호

  • <hostname>: 클라이언트가 액세스할 수 있는 MongoDB Server의 네트워크 주소

  • <authenticationDb>: 사용자 인증이 포함된 MongoDB database

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

var mongoClient = new MongoClient("mongodb://<username>:<password>@<hostname>/?authSource=<authenticationDb>&authMechanism=PLAIN");
var credential = MongoCredential.CreatePlainCredential("<authenticationDb>", "<username>", "<password>");
var settings = MongoClientSettings.FromConnectionString("<connection string>");
settings.Credential = credential;
var mongoClient = new MongoClient(settings);

이 메서드는 RFC-4616에 정의된 PLAIN 간이 인증 및 보안 계층 서비스(SASL)를 사용하여 인증하므로 LDAP 대신 PLAIN을 참조합니다.

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

돌아가기

인증 메커니즘.