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 の RFC5802 および 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-1
RFC5802 で定義されている は、 アルゴリズムで暗号化されたユーザー名とパスワードを使用してユーザーを認証する SCRAM(Salted Challenge Response Authentication Mechanism)SHA-1
です。
このメカニズムで認証するには、次の接続オプションを設定します。
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クライアントの作成」ガイドを参照してください。
接続オプションの詳細については、 「接続オプションの指定」ガイドを参照してください。