Overview
SCRAM(Salted Challenge Response Authentication Mechanism)は、MongoDB のデフォルトの認証メカニズムです。Scala ドライバーは、次の SCRAM バリアントをサポートしています。
SCRAM-SHA-256: SHA-256 ハッシング アルゴリズムを使用し、MongoDB 6.0 以降のデフォルトメカニズムです。SCRAM-SHA-1: SHA-1 ハッシング アルゴリズムを使用します。
SCRAM を使用して、 MongoDB Atlas、 MongoDB Enterprise Advanced、 MongoDB Community Edition を認証できます。
Tip
SCRAM メカニズム
SCRAM ファミリーの認証メカニズムの詳細については、 Wikipedia の RFC5802 および Salted Challenge Response Authentication Mechanism を参照してください。
MongoDBの SCRAM実装の詳細については、 MongoDB Serverマニュアルの「 SCRAM 」を参照してください。
コード プレースホルダー
このページのコード例では、次のプレースホルダーを使用します。
<db_username>: 認証するユーザーのMongoDBユーザー名。<db_password>: 認証するユーザーのMongoDBパスワード。<hostname>: MongoDBデプロイのネットワーク アドレス。<port>: MongoDB配置のポート番号。このパラメータを省略すると、ドライバーはデフォルトのポート番号(27017)を使用します。MongoDB Atlas クラスターに接続する場合、ポート番号は必要ありません。<authenticationDb>: ユーザーの認証データが含まれるMongoDBデータベース 。 このパラメータを省略すると、ドライバーはデフォルト値のadminを使用します。
コード例を使用するには、これらのプレースホルダーを独自の値に置き換えます。
デフォルトの認証メカニズム
MongoDB 6.0 以降のデフォルトの認証メカニズムは SCRAM-SHA-256 です。デフォルトのメカニズムを使用するには、次のタブのいずれかを選択します。
接続文字列を使用して認証するには、authMechanism パラメーターを省略します。
val mongoClient = MongoClient("mongodb://<db_username>:<db_password>@<hostname>:<port>/?authSource=<authenticationDb>")
MongoCredential クラスは認証資格情報を表し、各認証メカニズムの静的ファクトリメソッドを含みます。MongoCredential クラスで認証するには、createCredential() メソッドを使用します。
val user = "<db_username>" // the username val source = "<authenticationDb>" // the authentication database 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("<hostname>", <port>)))) .credential(credential) .build())
SCRAM-SHA-256
このメカニズムを使用するには、featureCompatibilityVersion は 4.0 以降である必要があります。SCRAM-SHA-256 認証メカニズムを指定するには、次のいずれかのタブを選択します。
接続文字列で認証するには、authMechanism パラメータを SCRAM-SHA-256 に設定します。
val mongoClient = MongoClient("mongodb://<db_username>:<db_password>@<hostname>:<port>/?authSource=<authenticationDb>&authMechanism=SCRAM-SHA-256")
MongoCredential クラスは認証資格情報を表し、各認証メカニズムの静的ファクトリメソッドを含みます。MongoCredential クラスで認証するには、createScramSha256Credential() メソッドを使用します。
val user = "<db_username>" // the username val source = "<authenticationDb>" // the authentication database 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("<hostname>", <port>)))) .credential(credential) .build())
SCRAM-SHA-1
SCRAM-SHA-1 認証メカニズムを指定するには、次のいずれかのタブを選択します。
接続文字列で認証するには、authMechanism パラメータを SCRAM-SHA-1 に設定します。
val mongoClient = MongoClient("mongodb://<db_username>:<db_password>@<hostname>:<port>/?authSource=<authenticationDb>&authMechanism=SCRAM-SHA-1")
MongoCredential クラスは認証資格情報を表し、各認証メカニズムの静的ファクトリメソッドを含みます。MongoCredential クラスで認証するには、createScramSha1Credential() メソッドを使用します。
val user = "<db_username>" // the username val source = "<authenticationDb>" // the authentication database 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("<hostname>", <port>)))) .credential(credential) .build())
API ドキュメント
このページで使用されているメソッドとタイプの詳細については、次の API ドキュメントを参照してください。