

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Autenticación mediante SCRAM-SHA-256
<a name="scram-sha-256-auth"></a>

Amazon DocumentDB (compatible con MongoDB) admite el mecanismo de autenticación Salted Challenge Response (SCRAM) para la autenticación basada en contraseñas. Con SCRAM, el servidor verifica que un cliente conozca la contraseña de un usuario sin transmitir la contraseña al servidor. Amazon DocumentDB admite dos mecanismos de SCRAM: y. `SCRAM-SHA-1` `SCRAM-SHA-256` `SCRAM-SHA-256`utiliza la función SHA-256 hash más potente y funciona con el modo FIPS.

Al crear o actualizar ese usuario, se asignan uno o ambos mecanismos de SCRAM a un usuario. Los usuarios que se crearon con `SCRAM-SHA-1` siguen funcionando sin ningún cambio. SCRAM-SHA-256 la autenticación está disponible en las versiones secundarias 5.0.1\+ y 8.0.1\+ de clústeres basados en instancias de Amazon DocumentDB.

**La autenticación de SCRAM e IAM se excluyen mutuamente**  
Un usuario puede tener un mecanismo SCRAM o el `MONGODB-AWS` mecanismo, pero no ambos. Para obtener información sobre la autenticación de identidad de IAM, consulte. [Autenticación mediante la identidad de IAM](iam-identity-auth.md)

**Topics**
+ [Creación de usuarios con mecanismos de SCRAM](#scram-sha-256-auth-creating-users)
+ [Actualización de los usuarios existentes](#scram-sha-256-auth-updating-users)
+ [Autenticando con SCRAM-SHA-256](#scram-sha-256-auth-authenticating)

## Creación de usuarios con mecanismos de SCRAM
<a name="scram-sha-256-auth-creating-users"></a>

Al crear un usuario, puede especificar los mecanismos de SCRAM que desea habilitar en el `mechanisms` campo. Los ejemplos siguientes crean usuarios con `SCRAM-SHA-1` solo, `SCRAM-SHA-256` solo y ambos 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 predeterminados
<a name="scram-sha-256-auth-default-mechanisms"></a>

Si no especifica el `mechanisms` campo, Amazon DocumentDB habilita ambos campos `SCRAM-SHA-1` y `SCRAM-SHA-256` para el usuario. Los dos comandos siguientes son 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']
});
```

Al habilitar ambos mecanismos de forma predeterminada, se mantiene la compatibilidad con los controladores MongoDB más antiguos, que solo los admiten. `SCRAM-SHA-1` Se prefieren los controladores más nuevos y el modo FIPS. `SCRAM-SHA-256` Si no quieres que ningún usuario se autentique`SCRAM-SHA-1`, especifícalo solo `SCRAM-SHA-256` en el `mechanisms` campo para todos tus usuarios.

## Actualización de los usuarios existentes
<a name="scram-sha-256-auth-updating-users"></a>

Los usuarios creados con `SCRAM-SHA-1` siguen siendo compatibles sin cambios. Para cambiar un usuario existente de `SCRAM-SHA-1` a`SCRAM-SHA-256`, actualice el usuario con una contraseña nueva y el `SCRAM-SHA-256` mecanismo:

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

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

El controlador se autentica automáticamente mediante los parámetros de la cadena de conexión antes de enviar el primer comando en cada conexión. Para seleccionar `SCRAM-SHA-256` un URI de conexión, defina `SCRAM-SHA-256` el `authMechanism` parámetro en:

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

También puedes enviar una solicitud de autenticación explícita desde mongosh:

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

Si no especificas un mecanismo de autenticación en tus opciones de conexión, el controlador selecciona automáticamente un mecanismo compatible con el usuario de la base de datos de destino.