Docs Menu
Docs Home
/ /
/ / /

SCRAM 認証

Salted Challenge Response Authentication Mechanism (SCRAM) は、チャレンジ レスポンス メカニズムを使用してユーザーを認証する認証メカニズムのファミリーです。SHA-256アルゴリズムを使用してパスワードをハッシュする SCRAM-SHA-256 は、 MongoDBサーバーバージョン 4.0 以降のデフォルトの認証メカニズムです。

SCRAM を使用して、 MongoDB Atlas、 MongoDB Enterprise Advanced、 MongoDB Community Edition を認証できます。

Tip

SCRAM メカニズム

SCRAM ファミリーの認証メカニズムの詳細については、 Wikipedia の RFC5802 および Salted Challenge Response 認証メカニズムを参照してください。

MongoDBの SCRAM実装の詳細については、 MongoDBサーバーマニュアルのSCRAMを参照してください。

このページのコード例では、次のプレースホルダーを使用します。

  • db_username - MongoDB database のユーザー名。

  • db_password - MongoDB database ユーザーのパスワード。

  • hostname - クライアントからアクセス可能な MongoDB サーバーのネットワーク アドレス。

  • port - MongoDB サーバーのポート番号。

  • authenticationDb - ユーザーの認証データが含まれる MongoDB database。 このパラメータを省略すると、ドライバーはデフォルト値のadminを使用します。

このページのコード例を使用するには、これらのプレースホルダーを独自の値に置き換えます。

SCRAM-SHA-256認証メカニズムを指定するための手順とサンプルコードについては、以下の [Connection String] タブまたは [MongoCredential] タブを選択してください。

接続文字列 を使用してデフォルトの認証メカニズムを指定するには、 メカニズムを省略します。 MongoClient をインスタンス化するコードは次のようになります。

val mongoClient =
MongoClient.create("mongodb://<db_username>:<db_password>@<hostname>:<port>/?authSource=<authenticationDb>")

MongoCredentialクラスを使用してデフォルトの認証メカニズムを指定するには、createCredential() メソッドを使用します。 MongoClient をインスタンス化するコードは次のようになります。

val credential = MongoCredential.createCredential(
"<db_username>", "<authenticationDb>", "<db_password>".toCharArray()
)
val settings = MongoClientSettings.builder()
.applyToClusterSettings { builder: ClusterSettings.Builder ->
builder.hosts(
listOf(ServerAddress("<hostname>", "<port>"))
)
}
.credential(credential)
.build()
val mongoClient = MongoClient.create(settings)

次のコード スニペットに示すように、SCRAM-SHA-256認証メカニズムを明示的に指定することもできます。

接続文字列 を使用して SCRAM-SHA-256認証メカニズムを指定するには、接続文字列で authMechanism パラメータに値 SCRAM-SHA-256 を割り当てます。 MongoClient をインスタンス化するコードは次のようになります。

val mongoClient =
MongoClient.create("mongodb://<db_username>:<db_password>@<hostname>:<port>/?authSource=<authenticationDb>&authMechanism=SCRAM-SHA-256")

MongoCredentialクラスを使用してデフォルトの認証メカニズムを指定するには、createScramSha256Credential() メソッドを使用します。MongoClient をインスタンス化するコードは次のようになります。

val credential = MongoCredential.createScramSha256Credential(
"<db_username>", "<authenticationDb>", "<db_password>".toCharArray()
)
val settings = MongoClientSettings.builder()
.applyToClusterSettings { builder: ClusterSettings.Builder ->
builder.hosts(
listOf(ServerAddress("<hostname>", "<port>"))
)
}
.credential(credential)
.build()
val mongoClient = MongoClient.create(settings)

戻る

認証

項目一覧