Docs Menu
Docs Home
/ / /
Scala
/

認証メカニズム

項目一覧

  • MongoCredential
  • デフォルトの認証メカニズム
  • SCRAM ベースのメカニズム
  • SCRAM-SHA-256
  • SCRAM-SHA-1
  • x.509

Scalaドライバーは、 MongoDB Enterprise 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 Authentication Mechanism(SCRAM )は、 以降のMongoDBのデフォルトの認証メカニズムです。3.0 SCRAMは、パスワードを持つユーザーを認証するためのチャレンジ レスポンス メカニズムの実装に関するベスト プラクティスを定義する IETF 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. 証明書を使用する方法の詳細については、サーバー マニュアルの「 x.509 証明書を使用したクライアントの認証 」チュートリアルを参照してください。

戻る

セキュリティ