엔터프라이즈 인증 메커니즘
개요
이 가이드에서는 MongoDB Enterprise Edition에서만 사용할 수 있는 인증 메커니즘 을 사용하여 MongoDB로 인증하는 방법을 배울 수 있습니다. 인증 메커니즘은 드라이버와 서버가 연결 전에 보안을 보장하기 위해 클라이언트의 ID를 확인하는 프로세스입니다.
최신 버전의 MongoDB Enterprise Edition에서 다음 인증 메커니즘을 사용할 수 있습니다.
다른 메커니즘을 사용하여 인증하려면 인증 메커니즘 기본 사항 페이지를 참조하세요. MongoDB cluster 에 대한 연결 설정에 대한 자세한 내용은 연결 가이드를 참조하세요.
다음 방법 중 하나를 사용하여 MongoDB에 연결할 때 인증 메커니즘 및 자격 증명을 지정할 수 있습니다.
연결 문자열(연결 URI 라고도 함)은 MongoDB deployment에 연결하는 방법과 연결된 동안 작동하는 방법을 드라이버에 알려주는 문자열입니다.
지원되는 인증 메커니즘을 위한 팩토리 메서드로,
MongoCredential
클래스에 포함되어 있습니다.
GSSAPI/Kerberos로 인증
일반 보안 서비스 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
을(를) 통해 키탭을 초기화했습니다.
additionalProperties
연결 문자열을 사용하거나 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);
Realm
다음 예에서는 사용자의 영역이 서비스의 영역과 다른 경우 사용자의 영역을 지정하는 방법을 보여 줍니다.
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(PLAIN)로 인증
디렉토리 서버 사용자 이름 및 비밀번호를 사용하여 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 문서
이 가이드에서 설명하는 메서드나 유형에 대해 자세히 알아보려면 다음 API 설명서를 참조하세요.