AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
MongoDB Branding Shape
Click here >
Docs Menu

SCRAM 認証

Salted Challenge Response Authentication Mechanism(SCRAM)は、挑戦-レスポンス メカニズムを使用してユーザーを認証する認証メカニズムのファミリーです。SCRAM-SHA-256SHA-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 String ] タブを選択してください。MongoCredential

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

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 の作成」ガイドを参照してください。