개요
SCRAM(Salted Challenge Response Authentication Mechanism) 은 챌린지-응답 메커니즘을 사용하여 사용자를 인증하는 인증 메커니즘 제품군입니다. SHA-256 알고리즘 사용하여 비밀번호를 해시하는 SCRAM -SHA-256는 MongoDB 서버 버전 4.0 이상에서 기본값 인증 메커니즘 입니다.
SCRAM 사용하여 MongoDB Atlas, MongoDB Enterprise Advanced 및 MongoDB Community Edition 에 인증할 수 있습니다.
팁
SCRAM 메커니즘
SCRAM 인증 메커니즘 제품군에 대해 자세히 학습 Wikipedia의RFC 5802 및 Salted Challenge Response 인증 메커니즘을 참조하세요.
SCRAM 의 MongoDB 구현 에 대한 자세한 내용은 MongoDB 서버 매뉴얼의 SCRAM 참조하세요.
코드 자리 표시자
이 페이지의 코드 예제에서는 다음 자리 표시자를 사용합니다.
db_username- MongoDB database 사용자 이름 입니다.db_password- MongoDB database 사용자의 비밀번호입니다.hostname- 클라이언트가 액세스할 수 있는 MongoDB Server의 네트워크 주소입니다.port- MongoDB Server의 포트 번호입니다.authenticationDb- 사용자의 인증 데이터가 포함된 MongoDB 데이터베이스. 이 매개변수를 생략하면 드라이버는 기본값admin을 사용합니다.
이 페이지의 코드 예제를 사용하려면 이러한 자리 표시자를 원하는 값으로 바꾸세요.
SCRAM-SHA-256로 인증
아래의 Connection String 또는 MongoCredential 탭 을 선택하여 SCRAM-SHA-256 인증 메커니즘 지정하는 지침과 샘플 코드를 확인합니다.
연결 문자열 사용하여 기본값 인증 메커니즘 지정하려면 해당 메커니즘을 생략합니다. MongoClient 를 인스턴스화하는 코드는 다음과 유사해야 합니다.
val mongoClient = MongoClient.create("mongodb://<db_username>:<db_password>@<hostname>:<port>/?authSource=<authenticationDb>")
MongoCredential 클래스를 사용하여 기본값 인증 메커니즘 지정하려면 createCredential() 메서드를 사용합니다. MongoClient 를 인스턴스화하는 코드는 다음과 유사해야 합니다.
val credential = MongoCredential.createCredential( "<db_username>", "<authenticationDb>", "<db_password>".toCharArray() ) val settings = MongoClientSettings.builder() .applyToClusterSettings { builder: ClusterSettings.Builder -> builder.hosts( listOf(ServerAddress("<hostname>", "<port>")) ) } .credential(credential) .build() val mongoClient = MongoClient.create(settings)
다음 코드 스니펫과 같이 SCRAM-SHA-256 인증 메커니즘 명시적으로 지정할 수도 있습니다.
연결 문자열 사용하여 SCRAM-SHA-256 인증 메커니즘 지정하려면 연결 문자열 에 authMechanism 매개 변수에 SCRAM-SHA-256 값을 할당합니다. MongoClient 를 인스턴스화하는 코드는 다음과 유사해야 합니다.
val mongoClient = MongoClient.create("mongodb://<db_username>:<db_password>@<hostname>:<port>/?authSource=<authenticationDb>&authMechanism=SCRAM-SHA-256")
MongoCredential 클래스를 사용하여 기본값 인증 메커니즘 지정하려면 createScramSha256Credential() 메서드를 사용합니다. MongoClient 를 인스턴스화하는 코드는 다음과 유사해야 합니다.
val credential = MongoCredential.createScramSha256Credential( "<db_username>", "<authenticationDb>", "<db_password>".toCharArray() ) val settings = MongoClientSettings.builder() .applyToClusterSettings { builder: ClusterSettings.Builder -> builder.hosts( listOf(ServerAddress("<hostname>", "<port>")) ) } .credential(credential) .build() val mongoClient = MongoClient.create(settings)