

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# SCRAM-SHA-256 を使用した認証
<a name="scram-sha-256-auth"></a>

Amazon DocumentDB (MongoDB 互換) は、パスワードベースの認証のための Salted Challenge Response Authentication Mechanism (SCRAM) をサポートしています。SCRAM では、サーバーはクライアントがパスワードをサーバーに送信せずにユーザーのパスワードを知っていることを確認します。Amazon DocumentDB は、 `SCRAM-SHA-1`と の 2 つの SCRAM メカニズムをサポートしています`SCRAM-SHA-256`。 は、より強力な SHA-256 ハッシュ関数`SCRAM-SHA-256`を使用し、FIPS モードと連携します。

ユーザーを作成または更新するときに、1 つまたは両方の SCRAM メカニズムをユーザーに割り当てます。で作成されたユーザーは、変更を加えることなく`SCRAM-SHA-1`作業を継続します。SCRAM-SHA-256 認証は、Amazon DocumentDB インスタンスベースのクラスターマイナーバージョン 5.0.1 以降および 8.0.1 以降で使用できます。

**SCRAM と IAM 認証は相互に排他的です**  
ユーザーは SCRAM メカニズムまたは `MONGODB-AWS`メカニズムのいずれかを持つことができますが、両方を持つことはできません。IAM ID 認証については、「」を参照してください[IAM ID を使用した認証](iam-identity-auth.md)。

**Topics**
+ [SCRAM メカニズムを使用したユーザーの作成](#scram-sha-256-auth-creating-users)
+ [既存のユーザーの更新](#scram-sha-256-auth-updating-users)
+ [SCRAM-SHA-256 を使用した認証](#scram-sha-256-auth-authenticating)

## SCRAM メカニズムを使用したユーザーの作成
<a name="scram-sha-256-auth-creating-users"></a>

ユーザーを作成するときに、 `mechanisms`フィールドで有効にする SCRAM メカニズムを指定できます。次の例では、 `SCRAM-SHA-1` のみ、 `SCRAM-SHA-256`のみ、および両方のメカニズムを持つユーザーを作成します。

```
db.runCommand({
    createUser: 'sha1user',
    pwd: passwordPrompt(),
    roles: ['readWrite'],
    mechanisms: ['SCRAM-SHA-1']
});
db.runCommand({
    createUser: 'sha256user',
    pwd: passwordPrompt(),
    roles: ['readWrite'],
    mechanisms: ['SCRAM-SHA-256']
});
db.runCommand({
    createUser: 'bothuser',
    pwd: passwordPrompt(),
    roles: ['readWrite'],
    mechanisms: ['SCRAM-SHA-1','SCRAM-SHA-256']
});
```

### デフォルトのメカニズム
<a name="scram-sha-256-auth-default-mechanisms"></a>

`mechanisms` フィールドを指定しない場合、Amazon DocumentDB はユーザー`SCRAM-SHA-256`に対して `SCRAM-SHA-1`と の両方を有効にします。次の 2 つのコマンドは同等です。

```
db.runCommand({
    createUser: 'user1',
    pwd: passwordPrompt(),
    roles: ['readWrite']
});
// is equivalent to:
db.runCommand({
    createUser: 'user1',
    pwd: passwordPrompt(),
    roles: ['readWrite'],
    mechanisms: ['SCRAM-SHA-1','SCRAM-SHA-256']
});
```

両方のメカニズムをデフォルトで有効にすると、 のみをサポートする古い MongoDB ドライバーとの互換性が維持されます`SCRAM-SHA-1`。新しいドライバーと FIPS モードは を優先します`SCRAM-SHA-256`。ユーザーが で認証しないようにするには`SCRAM-SHA-1`、すべてのユーザーの `SCRAM-SHA-256` `mechanisms`フィールドに のみを指定します。

## 既存のユーザーの更新
<a name="scram-sha-256-auth-updating-users"></a>

で作成されたユーザーは、変更なしで`SCRAM-SHA-1`引き続きサポートされます。既存のユーザーを から `SCRAM-SHA-1` に切り替えるには`SCRAM-SHA-256`、新しいパスワードと`SCRAM-SHA-256`メカニズムでユーザーを更新します。

```
db.runCommand({
    updateUser: 'existing',
    pwd: passwordPrompt(),
    mechanisms: ['SCRAM-SHA-256']
});
```

## SCRAM-SHA-256 を使用した認証
<a name="scram-sha-256-auth-authenticating"></a>

ドライバーは、各接続で最初のコマンドを送信する前に、接続文字列パラメータを使用して自動的に認証します。接続 URI `SCRAM-SHA-256`で を選択するには、 `authMechanism`パラメータを に設定します`SCRAM-SHA-256`。

```
mongodb://username:password@hostname:port/authenticationDatabase?authMechanism=SCRAM-SHA-256
```

mongosh から明示的な認証リクエストを送信することもできます。

```
db.auth({user: 'sha256user', pwd: passwordPrompt(), mechanism: 'SCRAM-SHA-256'})
Enter password:
1
```

接続オプションで認証メカニズムを指定しない場合、ドライバーはターゲットデータベースユーザーがサポートするメカニズムを自動的に選択します。