

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Autenticação usando SCRAM-SHA-256
<a name="scram-sha-256-auth"></a>

O Amazon DocumentDB (com compatibilidade com MongoDB) oferece suporte ao Salted Challenge Response Authentication Mechanism (SCRAM) para autenticação baseada em senha. Com o SCRAM, o servidor verifica se um cliente sabe a senha de um usuário sem transmitir a senha ao servidor. O Amazon DocumentDB oferece suporte a dois mecanismos SCRAM: e. `SCRAM-SHA-1` `SCRAM-SHA-256` `SCRAM-SHA-256`usa a função de SHA-256 hash mais forte e funciona com o modo FIPS.

Você atribui um ou ambos os mecanismos SCRAM a um usuário ao criar ou atualizar esse usuário. Os usuários que foram criados com `SCRAM-SHA-1` continuam trabalhando sem nenhuma alteração. SCRAM-SHA-256 a autenticação está disponível nas versões secundárias do cluster baseado em instância do Amazon DocumentDB 5.0.1\+ e 8.0.1\+.

**A autenticação SCRAM e IAM são mutuamente exclusivas**  
Um usuário pode ter um mecanismo SCRAM ou o `MONGODB-AWS` mecanismo, mas não os dois. Para autenticação de identidade do IAM, consulte[Autenticação usando identidade do IAM](iam-identity-auth.md).

**Topics**
+ [Criação de usuários com mecanismos SCRAM](#scram-sha-256-auth-creating-users)
+ [Atualizando usuários existentes](#scram-sha-256-auth-updating-users)
+ [Autenticando com SCRAM-SHA-256](#scram-sha-256-auth-authenticating)

## Criação de usuários com mecanismos SCRAM
<a name="scram-sha-256-auth-creating-users"></a>

Ao criar um usuário, você pode especificar os mecanismos de SCRAM a serem habilitados com o `mechanisms` campo. Os exemplos a seguir criam usuários com `SCRAM-SHA-1` apenas, `SCRAM-SHA-256` somente e ambos os mecanismos:

```
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']
});
```

### Mecanismos padrão
<a name="scram-sha-256-auth-default-mechanisms"></a>

Se você não especificar o `mechanisms` campo, o Amazon DocumentDB habilitará ambos `SCRAM-SHA-1` e `SCRAM-SHA-256` para o usuário. Os dois comandos a seguir são equivalentes:

```
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']
});
```

A ativação de ambos os mecanismos por padrão mantém a compatibilidade com drivers MongoDB mais antigos que suportam apenas. `SCRAM-SHA-1` Os drivers mais novos e o modo FIPS preferem. `SCRAM-SHA-256` Se você não quiser que nenhum usuário se autentique`SCRAM-SHA-1`, especifique somente `SCRAM-SHA-256` no `mechanisms` campo para todos os seus usuários.

## Atualizando usuários existentes
<a name="scram-sha-256-auth-updating-users"></a>

Os usuários criados com `SCRAM-SHA-1` continuam recebendo suporte sem alterações. Para mudar um usuário existente de `SCRAM-SHA-1` para`SCRAM-SHA-256`, atualize o usuário com uma nova senha e o `SCRAM-SHA-256` mecanismo:

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

## Autenticando com SCRAM-SHA-256
<a name="scram-sha-256-auth-authenticating"></a>

Seu driver se autentica automaticamente usando os parâmetros da cadeia de caracteres de conexão antes de enviar o primeiro comando em cada conexão. Para selecionar `SCRAM-SHA-256` em um URI de conexão, defina o `authMechanism` parâmetro como`SCRAM-SHA-256`:

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

Você também pode enviar uma solicitação de autenticação explícita do mongosh:

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

Se você não especificar um mecanismo de autenticação nas opções de conexão, o driver selecionará automaticamente um mecanismo suportado pelo usuário do banco de dados de destino.