認証メカニズム
Scalaドライバーは、 MongoDB Enterprise Edition でのみ使用可能な認証メカニズムを含む、すべてのMongoDB認証メカニズムをサポートしています。
MongoCredential
認証情報は MongoCredential
クラスのインスタンスとして表されます。 MongoCredential
クラスには、サポートされている各認証メカニズムの静的ファクトリー メソッドが含まれています。
デフォルトの認証メカニズム
MongoDB 6.0 以降のデフォルトの認証メカニズムは SCRAM-SHA-256
です。
サーバーのバージョンに関係なく、デフォルトの認証メカニズムを使用して認証する認証情報を作成するには、 createCredential()
静的ファクトリー メソッドを使用して認証情報を作成します。
val user = "<db_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")
SCRAM ベースのメカニズム
Salted Challenge Response Authentication Mechanism(SCRAM
)は、3.0 以降のMongoDBのデフォルトの認証メカニズムです。 は、パスワードを持つユーザーを認証するためのチャレンジ レスポンス メカニズムの実装に関するベストSCRAM
プラクティスを定義する IETF RFC 標準に基づいています。5802
SCRAM-SHA-256
このメカニズムを使用するには、featureCompatibilityVersion
を 4.0 またはそれ以降のバージョンに設定する必要があります。
SCRAM-SHA-256
タイプの認証情報を明示的に作成するには、 createScramSha256Credential()
メソッドを使用します。
val user = "<db_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")
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. 証明書を使用する方法の詳細については、サーバー マニュアルの「 x.509 証明書を使用したクライアントの認証 」チュートリアルを参照してください。