Docs Menu
Docs Home
/ / /
Java Sync Driver
/ /

SCRAM

Salted Challenge Response Authentication Mechanism(SCRAM)は、チャレンジ レスポンス メカニズムを使用してユーザーを認証する認証メカニズムのファミリーです。SHA-256アルゴリズムを使用してパスワードをハッシュする SCRAM-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 」を参照してください。

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

  • <db_username>: 認証するユーザーのMongoDBユーザー名。

  • <db_password>: 認証するユーザーのMongoDBパスワード。

  • <hostname>: MongoDBデプロイのネットワーク アドレス。

  • <port>: MongoDBデプロイのポート番号。 このパラメーターを省略すると、ドライバーはデフォルトのポート番号(27017)を使用します。 MongoDB Atlasクラスターに接続する場合、ポート番号は必要ありません。

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

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

デフォルトのSCRAM メカニズムを使用してMongoDBユーザーを認証するには、 MongoDBの認証情報を指定しますが、認証メカニズムは指定しない でください。対応する構文の手順とサンプルコードについては、以下の Connection Stringタブまたは MongoCredential タブを選択してください。

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

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

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

MongoCredential credential = MongoCredential.createCredential("<db_username>", "<authenticationDb>", "<db_password>");
MongoClient mongoClient = MongoClients.create(
MongoClientSettings.builder()
.applyToClusterSettings(builder ->
builder.hosts(Arrays.asList(new ServerAddress("<hostname>", <port>))))
.credential(credential)
.build());

がサポートするチャレンジ レスポンス (CR) および Salted Challenge Response 認証メカニズム (SCRAM )MongoDB SCRAMの詳細については、MongoDB Server マニュアルの「 」セクションを参照してください。

SCRAM-SHA-256 は、 MongoDB 4.0 以降のMongoDBのデフォルトの認証方法ですが、このコード例では、このメカニズムを明示的に使用する方法を示しています。この認証メカニズムを指定するための手順とサンプルコードについては、 Connection String または MongoCredential タブを選択します。

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

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

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

MongoCredential credential = MongoCredential.createScramSha256Credential("<db_username>", "<authenticationDb>", "<db_password>");
MongoClient mongoClient = MongoClients.create(
MongoClientSettings.builder()
.applyToClusterSettings(builder ->
builder.hosts(Arrays.asList(new ServerAddress("<hostname>", <port>))))
.credential(credential)
.build());

SCRAM-SHA-1 は、4.0 より前のMongoDBバージョンのデフォルトの認証方法ですが、このコード例では、このメカニズムを明示的に使用する方法を示しています。この認証メカニズムを指定するための手順とサンプルコードについては、 Connection String または MongoCredential タブを選択します。

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

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

MongoCredentialクラスを使用して SCRAM-SHA-1認証メカニズムを指定するには、createScramSha1Credential() メソッドを使用します。MongoClient をインスタンス化するコードは次のようになります。

MongoCredential credential = MongoCredential.createScramSha1Credential("<db_username>", "<authenticationDb>", "<db_password>");
MongoClient mongoClient = MongoClients.create(
MongoClientSettings.builder()
.applyToClusterSettings(builder ->
builder.hosts(Arrays.asList(new ServerAddress("<hostname>", <port>))))
.credential(credential)
.build());

このページで説明するメソッドやタイプの詳細については、次のAPIドキュメントを参照してください。

戻る

認証

項目一覧