Mentre l'autorizzazione cerca di garantire al client l'accesso al sistema, l'autenticazione controlla il tipo di accesso che il client ha in MongoDB, una volta che è stato autorizzato nel sistema.
Esistono vari meccanismi di autenticazione, di seguito sono riportati solo alcuni di essi.
Autenticazione MongoDB utilizzando certificati x.509
Usa certificati x.509 per autenticare il client: un certificato è fondamentalmente una firma affidabile tra il client e il server MongoDB.
Quindi, invece di inserire un nome utente e una password per connettersi al server, viene passato un certificato tra il client e il server MongoDB. Il client avrà fondamentalmente un certificato client che verrà passato al server per l'autenticazione nel server. Ogni certificato client corrisponde a un singolo utente MongoDB. Quindi ogni utente di MongoDB deve avere il proprio certificato per autenticarsi sul server MongoDB.
Per garantire che funzioni, è necessario seguire i seguenti passaggi;
- È necessario acquistare un certificato valido da un'autorità di terze parti valida e installarlo sul server MongoDB.
- Il certificato client deve avere le seguenti proprietà (una singola autorità di certificazione (CA) deve emettere i certificati sia per il client che per il server. I certificati client devono contenere i seguenti campi: keyUsage ed extendedKeyUsage.
- Ogni utente che si connette al server MongDB deve disporre di un certificato separato.
Autenticazione Mongodb con Kerberos
Passaggio 1) Configurare MongoDB con l'autenticazione Kerberos su Windows: Kerberos è un meccanismo di autenticazione utilizzato in ambienti client-server di grandi dimensioni.
È un meccanismo molto sicuro in cui la password è consentita solo se è crittografata. Bene, MongoDB ha la possibilità di autenticarsi con un sistema basato su Kerberos esistente.
Passaggio 2) Avvia il processo del server mongod.exe.
Passaggio 3) Avvia il processo client mongo.exe e connettiti al server MongoDB.
Passaggio 4) Aggiungi un utente in MongoDB, che è fondamentalmente un nome principale Kerberos al database $ esterno. Il database $ esterno è un database speciale che dice a MongoDB di autenticare questo utente su un sistema Kerberos invece che sul proprio 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"}}]}
Passaggio 5) Avvia mongod.exe con il supporto Kerberos utilizzando il seguente comando
mongod.exe -auth -setParameter authenticationMechanisms=GSSAPI
E quindi ora puoi connetterti con l'utente Kerberos e l'autenticazione Kerberos al database.
Sommario:
- Esistono vari meccanismi di autenticazione per fornire una migliore sicurezza nei database. Un esempio è l'utilizzo di certificati per autenticare gli utenti invece di utilizzare nomi utente e password.