Aller au contenu

Authentification#

A savoir#

  • MongoDB ne force pas l'authentification, ni les autorisations par défaut
  • Les modeles de roles de MongoDB sont relativement limités
  • ... mais ça s'améliore

Création d'un user pour le mode sécurisé#

Lancer MongoDB sans controle d'accès

$ mongod --port 27017 --dbpath /var/lib/mongodb

Lancer la commande mongosh, puis taper :

> use admin
> db.createUser({
  user: 'admin',
  pwd: 'admin',
  roles: [{
    role: 'root',
    db: 'admin'
  }]
})
> exit

Lancement de MongoDB en mode sécurisé#

Eteindre MongoDB apres la création du user

> db.adminCommand( { shutdown: 1 } )

Relancer mongo avec l'option --auth

$ mongod --auth --port 27017 --dbpath /var/lib/mongodb

ou bien utiliser l'option security.authorization dans le fichier de configuration

security:
  authorization: enabled

Authentification#

Ensuite relancer le client mongo en s'authentifiant :

$ mongosh --authenticationDatabase XXX -u admin -p

(où XXX vaut admin ou $external)

Références#