Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs Menu
Docs Home
/ / /
Kotlin Sync ドライバー
/ /

SCRAM 認証

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

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

Tip

SCRAM メカニズム

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

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

SCRAM-SHA-256RFC 7677 で定義されている は、ユーザー名とパスワードを SHA-256アルゴリズムで暗号化してユーザーを認証します。これはデフォルトの認証メカニズムです。

このセクションの例は、このデフォルトの認証メカニズムを指定し、次のプレースホルダー値を使用する方法を示しています。

  • db_username: MongoDBデータベース のユーザー名。

  • db_password: MongoDBデータベースユーザーのパスワード。

  • hostname: MongoDBデプロイのネットワーク アドレスで、クライアントで開きます。

  • port: MongoDBデプロイのポート番号。

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

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

接続文字列を使用してデフォルトの認証メカニズムを指定するには、次の例に示すように メカニズムを省略します。

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

MongoCredentialクラスを使用してデフォルトの認証メカニズムを指定するには、次の例に示すように createCredential() メソッドを使用します。

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認証メカニズムを明示的に指定することもできます。Connection StringMongoCredentialこの認証メカニズムを指定するための手順とサンプルコードについては、以下の [ タブを選択してください。

接続文字列を使用して SCRAM-SHA-256認証メカニズムを指定するには、次の例に示すように、authMechanism パラメータに接続文字列内の値 SCRAM-SHA-256 を割り当てます。

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

MongoCredentialクラスを使用してデフォルトの認証メカニズムを指定するには、次の例に示すように createScramSha256Credential() メソッドを使用します。

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)

SCRAM-SHA-1RFC 5802 で定義されている は、ユーザー名とパスワードを SHA-1アルゴリズムで暗号化してユーザーを認証します。

このセクションの例は、この認証メカニズムを指定し、次のプレースホルダー値を使用する方法を示しています。

  • db_username: MongoDBデータベース のユーザー名。

  • db_password: MongoDBデータベースユーザーのパスワード。

  • hostname: MongoDBデプロイのネットワーク アドレスで、クライアントで開きます。

  • port: MongoDBデプロイのポート番号。

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

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

接続文字列を使用して SCRAM-SHA-1認証メカニズムを指定するには、次の例に示すように、authMechanism パラメータに接続文字列内の値 SCRAM-SHA-1 を割り当てます。

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

MongoCredentialクラスを使用してデフォルトの認証メカニズムを指定するには、次の例に示すように createScramSha1Credential() メソッドを使用します。

val credential = MongoCredential.createScramSha1Credential(
"<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)

MongoDBへの認証の詳細については、 MongoDB Serverマニュアルの 認証 を参照してください。

Kotlin Syncドライバーを使用して MongoClientオブジェクトを作成する方法について詳しくは、「MongoClient の作成」ガイドを参照してください。

戻る

認証

項目一覧