Enquanto a autorização visa garantir o acesso do cliente ao sistema, a autenticação verifica que tipo de acesso o cliente tem no MongoDB, uma vez que ele foi autorizado no sistema.
Existem vários mecanismos de autenticação, abaixo estão apenas alguns deles.
Autenticação MongoDB usando certificados x.509
Use certificados x.509 para autenticar o cliente - Um certificado é basicamente uma assinatura confiável entre o cliente e o servidor MongoDB.
Portanto, em vez de inserir um nome de usuário e senha para se conectar ao servidor, um certificado é passado entre o cliente e o servidor MongoDB. O cliente terá basicamente um certificado de cliente que será passado ao servidor para autenticação no servidor. Cada certificado de cliente corresponde a um único usuário MongoDB. Portanto, cada usuário do MongoDB precisa ter seu próprio certificado para se autenticar no servidor MongoDB.
Para garantir que isso funcione, as seguintes etapas devem ser seguidas;
- Um certificado válido deve ser comprado de uma autoridade de terceiros válida e instalá-lo no servidor MongoDB.
- O certificado do cliente deve ter as seguintes propriedades (uma única autoridade de certificação (CA) deve emitir os certificados para o cliente e o servidor. Os certificados do cliente devem conter os seguintes campos - keyUsage e extendedKeyUsage.
- Cada usuário que se conecta ao servidor MongDB precisa ter um certificado separado.
Autenticação Mongodb com Kerberos
Etapa 1) Configurar MongoDB com autenticação Kerberos no Windows - Kerberos é um mecanismo de autenticação usado em grandes ambientes cliente-servidor.
É um mecanismo muito seguro em que a senha só é permitida se for criptografada. Bem, o MongoDB tem a facilidade de autenticar em um sistema existente baseado em Kerberos.
Etapa 2) Inicie o processo do servidor mongod.exe.
Etapa 3) Inicie o processo do cliente mongo.exe e conecte-se ao servidor MongoDB.
Etapa 4) Adicionar um usuário no MongoDB, que é basicamente um nome principal do Kerberos ao banco de dados $ external. O banco de dados $ external é um banco de dados especial que diz ao MongoDB para autenticar esse usuário em um sistema Kerberos em vez de em seu próprio 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"}}]}
Etapa 5) Inicie mongod.exe com suporte Kerberos usando o seguinte comando
mongod.exe -auth -setParameter authenticationMechanisms=GSSAPI
E agora você pode se conectar com o usuário Kerberos e autenticação Kerberos para o banco de dados.
Resumo:
- Existem vários mecanismos de autenticação para fornecer melhor segurança nos bancos de dados. Um exemplo é o uso de certificados para autenticar usuários em vez de usar nomes de usuário e senhas.