Vous pouvez configurer la sécurité gérée par application ou gérée par conteneur pour les connexions MongoDB dans Liberty.
Pourquoi et quand exécuter cette tâche
Vous pouvez sécuriser des applications MongoDB avec la sécurité gérée par application ou la sécurité gérée par conteneur. Dans les deux cas, le serveur MongoDB doit s'exécuter avec l'authentification
explicitement activée pour sécuriser les connexions MongoDB.
Procédure
- Configurez la sécurité gérée par application pour MongoDB.
Si l'élément de configuration mongo ne spécifie pas d'attributs utilisateur et mot de passe, le produit part du principe qu'une application utilise la sécurité gérée par application ou n'utilise pas de sécurité. Pour activer la sécurité gérée par application, l'application doit s'authentifier à
l'aide des API MongoDB, par exemple :
<mongo id="mongo1" libraryRef="MongoLib" />
<mongoDB jndiName="mongo/testdb" mongoRef="mongo1" databaseName="db-test-1"/>
{ ...
// Java snippet
@Resource(name = "mongo/testdb")
protected DB db;
private void auth() {
if (!db.isAuthenticated())
db.authenticate("user", "password".toCharArray());
}
- Configurez la sécurité gérée par conteneur pour MongoDB.
Pour que la sécurité gérée par conteneur puisse être appliquée, l'élément de configuration mongo doit spécifier un utilisateur et un mot de passe. Un utilisateur seulement est autorisé pour chaque configuration mongo. Toutes les instances MongoDB utilisent l'utilisateur et le mot de passe spécifiés. Par exemple, toutes les instances MongoDB qui référencent mongo1 dans l'exemple suivant utilisent mongoUserName et pw :
<mongo id="mongo1" libraryRef="MongoLib" user="mongoUserName" password="pw"/>
<mongoDB jndiName="mongo/testdb" mongoRef="mongo1" databaseName="db-test-1"/>
<mongoDB jndiName="mongo/testdb2" mongoRef="mongo1" databaseName="db-test-2"/>
Applications that use container-managed security must not call com.mongodb.DB.authenticate(user, pass).
Que faire ensuite
Vérifiez que le serveur MongoDB s'exécute, puis testez la sécurité MongoDB depuis votre application.