인증 메커니즘.
스칼라 운전자 MongoDB 엔터프라이즈 Edition에서만 사용할 수 있는 메커니즘을 포함하여 모든 MongoDB 인증 메커니즘을 지원합니다.
MongoCredential
인증 자격 증명은 MongoCredential
클래스의 인스턴스로 표시됩니다. MongoCredential
클래스에는 지원되는 각 인증 메커니즘에 대한 정적 팩토리 메서드가 포함되어 있습니다.
기본 인증 메커니즘
MongoDB 3.0 에서는 MongoDB는 기본 인증 메커니즘을 MONGODB-CR
에서 SCRAM-SHA-1
로 변경했습니다. MongoDB 4.0 에서는 더 이상 사용되지 않는 MONGODB-CR
메커니즘에 대한 지원이 제거되고 SCRAM-SHA-256
지원이 추가되었습니다.
서버 버전에 관계없이 기본 인증 메커니즘을 사용하여 인증하는 자격 증명을 만들려면 createCredential()
정적 팩토리 메서드를 사용하여 자격 증명을 만듭니다.
val user = "<username>" // the username val source = "<source>" // the source where the user is defined val password = ... // the password as a character array val credential = MongoCredential.createCredential(user, source, password) val mongoClient = MongoClient(MongoClientSettings .builder() .applyToClusterSettings(builder => builder.hosts(Collections.singletonList(ServerAddress("localhost", 27017)))) .credential(credential) .build())
또는 인증 메커니즘을 명시적으로 지정하지 않고 연결 string 을 사용할 수 있습니다.
val mongoClient = MongoClient("mongodb://user1:pwd1@host1/?authSource=db1")
과제 및 응답 메커니즘의 경우 기본값 인증 메커니즘 사용하는 것이 좋습니다. 이 접근 방식은 인증 스키마 업그레이드한 후에도 MongoDB 2.6 에서 MongoDB 3.0으로의 업그레이드를 간소화합니다. MongoDB 4.0 사용자의 경우, 메커니즘을 확인하고 올바른 해싱 알고리즘 사용하기 때문에 기본값 인증 메커니즘 도 권장합니다.
SCRAM 기반 메커니즘
Salted Challenge-Response 인증 메커니즘()은SCRAM
이후 MongoDB 의 기본값 인증 메커니즘 3.0 이었습니다. SCRAM
는 IETF RFC 5802 표준을 기반으로 하며, 이 표준은 비밀번호로 사용자를 인증하기 위한 과제-응답 메커니즘의 구현 에 대한 권장사항 를 정의합니다.
MongoDB 3.0 은 SHA-1
해싱 함수를 사용하는 SCRAM-SHA-1
에 대한 지원을 도입했습니다. MongoDB 4.0 은 SHA-256
해싱 함수를 사용하는 SCRAM-SHA-256
에 대한 지원을 도입했습니다.
SCRAM-SHA-256
이 메커니즘을 사용하려면 MongoDB 4.0 및 featureCompatibilityVersion
를 4.0 로 설정해야 합니다.
SCRAM-SHA-256
유형의 자격 증명을 명시적으로 만들려면 createScramSha256Credential()
메서드를 사용합니다.
val user = "<username>" // the username val source = "<source>" // the source where the user is defined val password = ... // the password as a character array val credential = MongoCredential.createScramSha256Credential(user, source, password) val mongoClient = MongoClient(MongoClientSettings .builder() .applyToClusterSettings(builder => builder.hosts(Collections.singletonList(ServerAddress("localhost", 27017)))) .credential(credential) .build())
또는 authMechanism=SCRAM-SHA-256
를 명시적으로 지정하는 연결 string 을 사용할 수 있습니다.
val mongoClient = MongoClient("mongodb://user1:pwd1@host1/?authSource=db1&authMechanism=SCRAM-SHA-256")
SCRAM-SHA-1
SCRAM-SHA-1
유형의 자격 증명을 명시적으로 만들려면 createScramSha1Credential()
메서드를 사용합니다.
val user = "<username>" // the username val source = "<source>" // the source where the user is defined val password = ... // the password as a character array val credential = MongoCredential.createScramSha1Credential(user, source, password) val mongoClient = MongoClient(MongoClientSettings .builder() .applyToClusterSettings(builder => builder.hosts(Collections.singletonList(ServerAddress("localhost", 27017)))) .credential(credential) .build())
또는 authMechanism=SCRAM-SHA-1
를 명시적으로 지정하는 연결 string 을 사용할 수 있습니다.
val mongoClient = MongoClient("mongodb://user1:pwd1@host1/?authSource=db1&authMechanism=SCRAM-SHA-1")
x.509
x.509 메커니즘을 통해 MongoDB SSL 협상 중에 제시된 x.509 인증서를 사용하여 이름이 x.509 인증서의 고유 이름 에서 파생된 사용자를 인증합니다.
x.509 인증 인증서 유효성 검사 와 함께 SSL 연결을 사용해야 합니다. 이 유형의 자격 증명을 만들려면 createMongoX509Credential()
정적 팩토리 메서드를 사용합니다.
val credential = MongoCredential.createMongoX509Credential() val mongoClient = MongoClient(MongoClientSettings .builder() .applyToClusterSettings(builder => builder.hosts(Collections.singletonList(ServerAddress("localhost", 27017)))) .credential(credential) .build())
또는 authMechanism=MONGODB-X509
를 명시적으로 지정하는 연결 string 을 사용할 수 있습니다.
val mongoClient = MongoClient("mongodb://subjectName@host1/?authMechanism=MONGODB-X509&ssl=true")
509 애플리케이션 에서 x.509 인증서를 사용하는 방법에 대해 자세히 학습 서버 매뉴얼의 x. 인증서를 클라이언트 인증하기 튜토리얼을 참조하세요.