Overview
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 の RFC 5802 および Salted Challenge Response 認証メカニズム を参照してください。
MongoDBの SCRAM実装の詳細については、 MongoDB Serverマニュアルの「 SCRAM 」を参照してください。
SCRAM-SHA-256
RFC7677 で定義されている SCRAM-SHA-256 は、 MongoDB配置のデフォルトの認証メカニズムです。
このメカニズムで認証するには、次の接続オプションを設定します。
username: 認証するユーザー名。 接続 URI に含める前に、この値をパーセント エンコードします。password: 認証するパスワード。 接続 URI に含める前に、この値をパーセント エンコードします。authSource: 認証するMongoDBデータベース 。 デフォルトでは 、 MongoDB PHPライブラリは接続 URI にデータベースに対して認証を行います(接続 URI を含めている場合)。 再試行しない場合、adminデータベースに対して認証が行われます。
これらのオプションは、オプション配列を MongoDB\Client コンストラクターに渡す方法と、接続 URI のパラメーターを使用する方法の 2 通りがあります。対応するコードを表示するには、MongoDB\Client タブまたは Connection URIタブを選択します。
$uriOptions = [ 'username' => '<username>', 'password' => '<password>', 'authSource' => '<authentication database>', ]; $client = new MongoDB\Client( 'mongodb://<hostname>:<port>', $uriOptions, );
$uri = 'mongodb://<username>:<password>@<hostname>:<port>/?authSource=admin'; $client = new MongoDB\Client($uri);
次の例に示すように、authMechanism 接続オプションを 'SCRAM-SHA-256' に設定して、SCRAM-SHA-256認証メカニズムを明示的に指定することもできます。
$uriOptions = [ 'username' => '<username>', 'password' => '<password>', 'authSource' => '<authentication database>', 'authMechanism' => 'SCRAM-SHA-256', ]; $client = new MongoDB\Client( 'mongodb://<hostname>:<port>', $uriOptions, );
$uri = 'mongodb://<username>:<password>@<hostname>:<port>/?authSource=admin&authMechanism=SCRAM-SHA-256'; $client = new MongoDB\Client($uri);
SCRAM-SHA-1
SCRAM-SHA-1RFC 5802 で定義されている は、 SHA-1アルゴリズムで暗号化されたユーザー名とパスワードを使用してユーザーを認証する SCRAM(Salted Challenge Response Authentication Mechanism) です。
このメカニズムで認証するには、次の接続オプションを設定します。
username: 認証するユーザー名。 接続 URI に含める前に、この値をパーセント エンコードします。password: 認証するパスワード。 接続 URI に含める前に、この値をパーセント エンコードします。authSource: 認証するMongoDBデータベース 。 デフォルトでは 、 MongoDB PHPライブラリは接続 URI にデータベースに対して認証を行います(接続 URI を含めている場合)。 再試行しない場合、adminデータベースに対して認証が行われます。authMechanism:'SCRAM-SHA-1'に設定します。
これらのオプションは、オプション配列を MongoDB\Client コンストラクターに渡す方法と、接続 URI のパラメーターを使用する方法の 2 通りがあります。対応するコードを表示するには、MongoDB\Client タブまたは Connection URIタブを選択します。
$uriOptions = [ 'username' => '<username>', 'password' => '<password>', 'authSource' => '<authentication database>', 'authMechanism' => 'SCRAM-SHA-1', ]; $client = new MongoDB\Client( 'mongodb://<hostname>:<port>', $uriOptions, );
$uri = 'mongodb://<username>:<password>@<hostname>:<port>/?authSource=admin&authMechanism=SCRAM-SHA-1'; $client = new MongoDB\Client($uri);
詳細情報
MongoDB PHPライブラリで MongoDB\Clientオブジェクトを作成する方法について詳しくは、「 MongoDBクライアントの作成」ガイドを参照してください。
接続オプションの詳細については、 「接続オプションの指定」ガイドを参照してください。