Mientras que la autorización busca asegurar el acceso del cliente al sistema, la autenticación verifica qué tipo de acceso tiene el cliente en MongoDB, una vez que ha sido autorizado en el sistema.
Existen varios mecanismos de autenticación, a continuación se muestran solo algunos de ellos.
Autenticación de MongoDB mediante certificados x.509
Use certificados x.509 para autenticar al cliente: un certificado es básicamente una firma confiable entre el cliente y el servidor MongoDB.
Entonces, en lugar de ingresar un nombre de usuario y contraseña para conectarse al servidor, se pasa un certificado entre el cliente y el servidor MongoDB. Básicamente, el cliente tendrá un certificado de cliente que se pasará al servidor para autenticarse en el servidor. Cada certificado de cliente corresponde a un solo usuario de MongoDB. Por lo tanto, cada usuario de MongoDB debe tener su propio certificado para poder autenticarse en el servidor de MongoDB.
Para asegurarse de que esto funcione, se deben seguir los siguientes pasos;
- Se debe comprar un certificado válido de una autoridad externa válida e instalarlo en el servidor MongoDB.
- El certificado de cliente debe tener las siguientes propiedades (una única autoridad de certificación (CA) debe emitir los certificados tanto para el cliente como para el servidor. Los certificados de cliente deben contener los siguientes campos: keyUsage y extendedKeyUsage.
- Cada usuario que se conecte al servidor MongDB debe tener un certificado independiente.
Autenticación de Mongodb con Kerberos
Paso 1) Configure MongoDB con la autenticación Kerberos en Windows: Kerberos es un mecanismo de autenticación que se utiliza en grandes entornos cliente-servidor.
Es un mecanismo muy seguro en el que la contraseña solo se permite si está cifrada. Bueno, MongoDB tiene la capacidad de autenticarse contra un sistema existente basado en Kerberos.
Paso 2) Inicie el proceso del servidor mongod.exe.
Paso 3) Inicie el proceso del cliente mongo.exe y conéctese al servidor MongoDB.
Paso 4) Agregue un usuario en MongoDB, que es básicamente un nombre principal de Kerberos a la base de datos externa $. La base de datos externa $ es una base de datos especial que le dice a MongoDB que autentique a este usuario contra un sistema Kerberos en lugar de su propio sistema interno.
use $externaldb.createUser({user: "This email address is being protected from spambots. You need JavaScript enabled to view it.",roles:[{role: "read" , db:"Marketing"}}]}
Paso 5) Inicie mongod.exe con soporte Kerberos usando el siguiente comando
mongod.exe -auth -setParameter authenticationMechanisms=GSSAPI
Y luego ahora puede conectarse con el usuario Kerberos y la autenticación Kerberos a la base de datos.
Resumen:
- Existen varios mecanismos de autenticación para brindar mayor seguridad en las bases de datos. Un ejemplo es el uso de certificados para autenticar usuarios en lugar de usar nombres de usuario y contraseñas.