Terwijl autorisatie kijkt naar het verzekeren van de toegang van de cliënt tot het systeem, controleert de authenticatie welk type toegang de cliënt heeft in MongoDB, zodra ze geautoriseerd zijn in het systeem.
Er zijn verschillende authenticatiemechanismen, hieronder staan er een paar.
MongoDB-verificatie met x.509-certificaten
Gebruik x.509-certificaten om de client te authenticeren - Een certificaat is in feite een vertrouwde handtekening tussen de client en de MongoDB-server.
Dus in plaats van een gebruikersnaam en wachtwoord in te voeren om verbinding te maken met de server, wordt er een certificaat doorgegeven tussen de client en de MongoDB-server. De client heeft in feite een clientcertificaat dat wordt doorgegeven aan de server om zich bij de server te authenticeren. Elk clientcertificaat komt overeen met een enkele MongoDB-gebruiker. Elke gebruiker van MongoDB moet dus zijn eigen certificaat hebben om zich te kunnen authenticeren bij de MongoDB-server.
Om ervoor te zorgen dat dit werkt, moeten de volgende stappen worden gevolgd;
- Een geldig certificaat moet worden gekocht bij een geldige externe instantie en dit op de MongoDB-server installeren.
- Het clientcertificaat moet de volgende eigenschappen hebben (een enkele certificeringsinstantie (CA) moet de certificaten uitgeven voor zowel de client als de server. De clientcertificaten moeten de volgende velden bevatten: keyUsage en extendedKeyUsage.
- Elke gebruiker die verbinding maakt met de MongDB-server heeft een apart certificaat nodig.
Mongodb-verificatie met Kerberos
Stap 1) MongoDB configureren met Kerberos-verificatie op Windows - Kerberos is een verificatiemechanisme dat wordt gebruikt in grote client-serveromgevingen.
Het is een zeer veilig mechanisme waarbij het wachtwoord alleen is toegestaan als het versleuteld is. MongoDB heeft de mogelijkheid om te authenticeren tegen een bestaand op Kerberos gebaseerd systeem.
Stap 2) Start het serverproces van mongod.exe.
Stap 3) Start het clientproces van mongo.exe en maak verbinding met de MongoDB-server.
Stap 4) Voeg een gebruiker toe in MongoDB, wat in feite een Kerberos-hoofdnaam is aan de $ externe database. De $ externe database is een speciale database die MongoDB vertelt om deze gebruiker te authenticeren tegen een Kerberos-systeem in plaats van zijn eigen interne systeem.
use $externaldb.createUser({user: "This email address is being protected from spambots. You need JavaScript enabled to view it.",roles:[{role: "read" , db:"Marketing"}}]}
Stap 5) Start mongod.exe met Kerberos-ondersteuning door de volgende opdracht te gebruiken
mongod.exe -auth -setParameter authenticationMechanisms=GSSAPI
En dan kunt u nu verbinding maken met de Kerberos-gebruiker en Kerberos-authenticatie met de database.
Overzicht:
- Er zijn verschillende authenticatiemechanismen om een betere beveiliging in databases te bieden. Een voorbeeld is het gebruik van certificaten om gebruikers te authenticeren in plaats van gebruikersnamen en wachtwoorden te gebruiken.