Docs Menu
Docs Home
/ / /
Scala
/

인증 메커니즘.

이 페이지의 내용

  • MongoCredential
  • 기본 인증 메커니즘
  • SCRAM 기반 메커니즘
  • SCRAM-SHA-256
  • SCRAM-SHA-1
  • x.509

스칼라 운전자 MongoDB 엔터프라이즈 Edition에서만 사용할 수 있는 메커니즘을 포함하여 모든 MongoDB 인증 메커니즘을 지원합니다.

인증 자격 증명은 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 사용자의 경우, 메커니즘을 확인하고 올바른 해싱 알고리즘 사용하기 때문에 기본값 인증 메커니즘 도 권장합니다.

Salted Challenge-Response 인증 메커니즘()은SCRAM 이후 MongoDB 의 기본값 인증 메커니즘 3.0 이었습니다. SCRAMIETF RFC 5802 표준을 기반으로 하며, 이 표준은 비밀번호로 사용자를 인증하기 위한 과제-응답 메커니즘의 구현 에 대한 권장사항 를 정의합니다.

MongoDB 3.0 은 SHA-1 해싱 함수를 사용하는 SCRAM-SHA-1 에 대한 지원을 도입했습니다. MongoDB 4.0 은 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 유형의 자격 증명을 명시적으로 만들려면 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 메커니즘을 통해 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. 인증서를 클라이언트 인증하기 튜토리얼을 참조하세요.

돌아가기

보안