Liberty で MongoDB 接続にアプリケーション管理セキュリティーまたはコンテナー管理セキュリティーを構成することができます。
このタスクについて
アプリケーション管理セキュリティーまたはコンテナー管理セキュリティーを使用して MongoDB アプリケーションを保護することができます。どちらのセキュリティー・タイプでも、
MongoDB サーバーは、MongoDB 接続を保護するように認証を明示的に有効にした状態で稼働していなければなりません。
手順
- MongoDB にアプリケーション管理セキュリティーを構成します。
mongo 構成エレメントで user と password の属性を指定しないと、アプリケーションがアプリケーション管理セキュリティーを使用しているか、セキュリティーを使用していないものと製品は想定します。アプリケーション管理セキュリティーを有効にする場合、アプリケーションは、
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 の各構成ごとに、ユーザーは 1 つだけ指定できます。
すべての 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 のセキュリティーをテストします。