

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Autenticazione tramite SCRAM-SHA-256
<a name="scram-sha-256-auth"></a>

Amazon DocumentDB (con compatibilità con MongoDB) supporta il meccanismo di autenticazione Salted Challenge Response Authentication (SCRAM) per l'autenticazione basata su password. Con SCRAM, il server verifica che un client conosca la password di un utente senza trasmetterla al server. Amazon DocumentDB supporta due meccanismi SCRAM: e. `SCRAM-SHA-1` `SCRAM-SHA-256` `SCRAM-SHA-256`utilizza la funzione SHA-256 hash più potente e funziona con la modalità FIPS.

Assegni uno o entrambi i meccanismi SCRAM a un utente quando crei o aggiorni quell'utente. Gli utenti creati con `SCRAM-SHA-1` continuano a funzionare senza modifiche. SCRAM-SHA-256 l'autenticazione è disponibile nelle versioni minori del cluster basate su istanze di Amazon DocumentDB 5.0.1\+ e 8.0.1\+.

**Le autenticazioni SCRAM e IAM si escludono a vicenda**  
Un utente può avere un meccanismo SCRAM o il `MONGODB-AWS` meccanismo, ma non entrambi. Per l'autenticazione dell'identità IAM, consulta[Autenticazione tramite identità IAM](iam-identity-auth.md).

**Topics**
+ [Creazione di utenti con meccanismi SCRAM](#scram-sha-256-auth-creating-users)
+ [Aggiornamento degli utenti esistenti](#scram-sha-256-auth-updating-users)
+ [Autenticazione con SCRAM-SHA-256](#scram-sha-256-auth-authenticating)

## Creazione di utenti con meccanismi SCRAM
<a name="scram-sha-256-auth-creating-users"></a>

Quando si crea un utente, è possibile specificare i meccanismi SCRAM da abilitare con il `mechanisms` campo. Gli esempi seguenti creano utenti con `SCRAM-SHA-1` solo, `SCRAM-SHA-256` solo ed entrambi i meccanismi:

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

### Meccanismi predefiniti
<a name="scram-sha-256-auth-default-mechanisms"></a>

Se non specifichi il `mechanisms` campo, Amazon DocumentDB li abilita entrambi `SCRAM-SHA-1` e `SCRAM-SHA-256` per l'utente. I due comandi seguenti sono equivalenti:

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

L'abilitazione predefinita di entrambi i meccanismi mantiene la compatibilità con i driver MongoDB precedenti che supportano solo. `SCRAM-SHA-1` Preferisco i driver più recenti e la modalità FIPS. `SCRAM-SHA-256` Se non desideri che nessun utente si autentichi con`SCRAM-SHA-1`, specifica `SCRAM-SHA-256` nel `mechanisms` campo solo per tutti gli utenti.

## Aggiornamento degli utenti esistenti
<a name="scram-sha-256-auth-updating-users"></a>

Gli utenti creati con `SCRAM-SHA-1` continuano a essere supportati senza modifiche. Per passare da un utente esistente `SCRAM-SHA-1` a`SCRAM-SHA-256`, aggiorna l'utente con una nuova password e il `SCRAM-SHA-256` meccanismo:

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

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

Il driver si autentica automaticamente utilizzando i parametri della stringa di connessione prima di inviare il primo comando su ogni connessione. Per selezionare `SCRAM-SHA-256` un URI di connessione, imposta il `authMechanism` parametro su: `SCRAM-SHA-256`

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

Puoi anche inviare una richiesta di autenticazione esplicita da mongosh:

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

Se non specifichi un meccanismo di autenticazione nelle opzioni di connessione, il driver seleziona automaticamente un meccanismo supportato dall'utente del database di destinazione.