我刚刚完成了一个没有身份验证的mongodb java项目。现在我想为它添加身份验证。所以我去了mongodb网站试图弄清楚如何以及哪种方式是最好的。我收到了很多authentication mechanisms。这些描述不仅足以让我了解哪种方法最好。这意味着我必须详细阅读详细的每个机制,这将是耗时的。我在下面的代码中尝试了ScramSha1。
非常关注,因为我真的希望我的系统得到很好的保护。
try{ // Manage the mongo db connection...
List<ServerAddress> seeds = new ArrayList<>();
seeds.add( new ServerAddress( host,intPort ));
List<MongoCredential> credentials = new ArrayList<>();
credentials.add(MongoCredential.createScramSha1Credential(userName,databaseName,password.toCharArray()));
mongo = new MongoClient( seeds, credentials );
db = mongo.getDB(databaseName);
}catch(MongoException ex){
}
从经验来看,我希望这里的大师可以告诉我机制中最好的和为什么。非常感谢提前。
答案 0 :(得分:0)
对于任何生产就绪应用程序,我建议使用基于证书的身份验证(x.509)。与基于用户名和密码的机制(如MONGODB-CR和SCRAM-SHA-1)相比,此机制更安全。
https://docs.mongodb.com/manual/core/security-x.509/#security-auth-x509
如今,由于高度重视IT安全性,业界最推荐的方法是使用基于证书的身份验证(x.509)。
1)如果您的应用程序是针对公共用户的,我强烈建议您使用基于证书的身份验证 2)如果它是内部组织用户使用的基于Intranet的应用程序,您仍然可以使用基于证书的身份验证。如果不可行(由于某种原因),您可以继续使用SCRAM-SHA-1(可从MongoDB 3.0版获得)。