您可以針對 Liberty 中的 MongoDB 連線來配置應用程式管理或儲存器管理的安全。
關於這項作業
您可以利用應用程式管理的安全或儲存器管理的安全來維護 MongoDB 應用程式安全。
對於這兩類型的安全,MongoDB 伺服器都必須在執行中,且必須明確啟用鑑別來保護 MongoDB 連線。
程序
- 配置 MongoDB 的應用程式管理安全。
如果 mongo 配置元素沒有指定使用者和密碼屬性,產品會假設應用程式在使用應用程式管理的安全,或沒有使用安全。
如果要啟用應用程式管理的安全,應用程式必須利用 MongoDB API 來進行鑑別;例如:
<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());
}
- 配置 MongoDB 的儲存器管理安全。
如果要使用儲存器管理的安全,mongo 配置元素必須指定使用者和密碼。
每個 mongo 配置都只能使用單一使用者。
所有 MongoDB 實例都使用指定的使用者和密碼。
例如,在下列範例中,所有參照 mongo1 的 MongoDB 實例都使用 mongoUserName 和 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"/>
使用儲存器管理安全的應用程式不能呼叫 com.mongodb.DB.authenticate(user, pass)。
下一步
確定 MongoDB 伺服器在執行中,然後從您的應用程式測試 MongoDB 安全。