java

时间:2016-07-26 11:13:32

标签: java mongodb authentication

我刚刚完成了一个没有身份验证的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){

        }

从经验来看,我希望这里的大师可以告诉我机制中最好的和为什么。非常感谢提前。

1 个答案:

答案 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版获得)。