2016-07-26 28 views
0

我剛剛完成了一個沒有認證的mongodb java項目。現在我想爲它添加驗證。所以我去了mongodb網站試圖弄清楚如何以及哪種方式是最好的。我得到了很多authentication mechanisms。這些描述不足以讓我明白哪種方法是最好的。這意味着我將不得不詳細閱讀每一個機制,目前這些機制將會很耗時。我在下面的代碼中嘗試了ScramSha1。java中的MongoDb認證機制

我非常關心,因爲我真的希望我的系統得到很好的保護。

 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){ 

     } 

從經驗來看,我希望這裏的大師能告訴我最好的機制,爲什麼之中。非常感謝Advance。

回答

0

對於任何生產就緒應用程序,我建議使用基於證書的身份驗證(x.509)。與基於用戶名和密碼的機制(如MONGODB-CR和SCRAM-SHA-1)相比,此機制更安全。

https://docs.mongodb.com/manual/core/security-x.509/#security-auth-x509

如今,由於高度重視IT安全,在同行業中最值得推薦的方法是使用證書的身份驗證(X.509)。如果您的應用程序是針對公共用戶的,我強烈建議使用基於證書的身份驗證 2)如果它是內部組織用戶使用的基於Intranet的應用程序,您仍然可以使用基於證書的身份驗證。如果不可行(由於某種原因),可以繼續使用SCRAM-SHA-1(可從MongoDB 3.0版獲得)。