非公開の開発環境では必要ですが、AEM Forms on JEE の実稼動環境では必要とされないユーザーアカウントやサービスの管理方法を学びます。
通常、開発者は、アプリケーションのビルドとテストに 実稼働環境は使用しません。したがって、プライベートな開発環境には必要でも実稼働環境には必要のないユーザーアカウントとサービスを管理する必要があります。
この記事では、JEE 上の AEM Forms の管理オプションを使用して、攻撃の対象となる脆弱性を全体的に減らす方法について説明します。
JEE 上の AEM Forms のインストールと設定が完了したら、SOAP および Enterprise JavaBeans™(EJB)経由で、多くのサービスをリモートで起動できるようになります。「リモート」という用語は、この場合、アプリケーションサーバーの SOAP、EJB または Action Message Format(AMF)のポートにネットワークアクセス可能なすべての呼び出し元を意味します。
JEE 上の AEM Forms サービスを呼び出すには、承認された呼び出し元であることを示す有効な資格情報が要求されます。それでも、リモートアクセスを認める必要がないサービスをリモートアクセス可能な状態にしておくことは望ましくありません。アクセスを制限するには、まず、システムとして機能するために必要な最小限のサービス群だけをリモートアクセス可能にします。その後、必要に応じて他のサービスのリモート起動を許可していくようにします。
JEE 上の AEM Forms サービスには、少なくとも SOAP アクセスが常に必要です。これらのサービスは、通常は Workbench で使用するために必要とされますが、Workspace Web アプリケーションによって呼び出されるサービスである場合もあります。
管理コンソールのアプリケーションおよびサービス web ページを使用して、次の手順を実行してください。
Web ブラウザーに次の URL を入力して管理コンソールにログインします。
https://[host name]:[port]/adminui
サービス/アプリケーションおよびサービス/環境設定をクリックします。
環境設定で、同じページにサービスとエンドポイントを 200 個まで表示するように設定します。
サービス/アプリケーションおよびサービス/エンドポイントの管理をクリックします。
プロバイダーリストから「EJB」を選択して、「フィルター」をクリックします。
すべての EJB エンドポイントを無効にするには、リスト内でそれぞれの横にあるチェックボックスを選択して、「無効にする」をクリックします。
「次へ」をクリックして、すべての EJB エンドポイントに関して、前述の手順を繰り返します。エンドポイントを無効にする前に、「プロバイダー」列に EJB が表示されていることを確認してください。
プロバイダーリストから「SOAP」を選択して、「フィルター」をクリックします。
SOAP エンドポイントを削除するには、リスト内でそれぞれの横にあるチェックボックスを選択して、「削除」をクリックします。以下のエンドポイントは削除しないでください。
「次へ」をクリックして、上記のリストにない SOAP エンドポイントに関して、前述の手順を繰り返します。エンドポイントを削除する前に、「プロバイダー」列に SOAP が表示されていることを確認してください。
一部の forms サーバーサービスについては、未承認(匿名)ユーザーが呼び出して一部の操作を実行することが許可されます。つまり、サービスによって公開されている一部の操作は、認証された任意のユーザーだけでなく、認証されていない任意のユーザーによって呼び出される可能性があります。
Web ブラウザーに次の URL を入力して管理コンソールにログインします。
https://[host name]:[port]/adminui
サービス/アプリケーションおよびサービス/サービスの管理をクリックします。
無効にするサービスの名前(AuthenticationManagerService など)をクリックします。
「セキュリティ」タブをクリックし、匿名アクセスが許可されましたの選択を解除して、「保存」をクリックしてください。
以下のサービスに関して手順 3 と 4 を繰り返します。
これらのサービスをリモート起動できるようする場合は、匿名アクセスを無効にすることを考慮してください。そうしないと、これらのサービスにネットワークアクセス可能な任意の呼び出し元が、有効な資格情報を渡さずにサービスを起動するおそれがあります。
匿名アクセスは、必要でないサービスでは無効にすることをお勧めします。内部サービスは、原則的にシステム内のすべてのユーザーが認証なしで呼び出せる必要があるので、多くの場合、内部サービスでは匿名認証を有効にする必要があります。
エンドユーザーが AEM Forms に対して認証を行う手段としては、Workbench、AEM Forms web アプリケーションや、AEM Forms サーバーサービスを呼び出すカスタムアプリケーションがあります。グローバルタイムアウト設定を使用すると、再認証を要求されるまでにユーザーが(SAML ベースアサーションを使用して)AEM Forms とやり取りできる時間を指定することができます。デフォルト設定は 2 時間です。実稼働環境では、この時間を、設定可能な分単位の最小値に変更する必要があります。
Web ブラウザーに次の URL を入力して管理コンソールにログインします。
https://[host name]:[port]/adminui
設定/User Management/設定/既存の設定ファイルの読み込みと書き出しをクリックします。
「書き出し」をクリックして、既存の AEM Forms の設定を含んだ config.xml ファイルを生成します。
エディターで XML ファイルを開き、次のエントリを見つけます。
<entry key=”assertionValidityInMinutes” value=”120”/>
値を 5(分単位)より大きい任意の数に変更し、ファイルを保存します。
管理コンソールで、既存の設定ファイルの読み込みと書き出しページに戻ります。
変更された config.xml ファイルへのパスを入力するか、「参照」をクリックしてこのファイルに移動します。
「読み込み」をクリックし、変更された config.xml ファイルをアップロードして、「OK」をクリックします。