JEE 上の AEM Forms 環境の堅牢化 hardening-your-aem-forms-on-jee-environment

企業のイントラネット内で動作する JEE 上の AEM Forms のセキュリティを強化するための、様々なセキュリティ強化設定について学びます。

この記事では、JEE 上の AEM Forms を実行するサーバーを保護するためのレコメンデーションとベストプラクティスについて説明します。ここでは、オペレーティングシステムとアプリケーションサーバーのホストの堅牢化について包括的な説明はしません。企業のイントラネット内で運用している JEE 上の AEM Forms のセキュリティを強化するために行うことが望ましい、様々なセキュリティ堅牢化設定について説明します。なお、JEE 上の AEM Forms アプリケーションサーバーのセキュリティを確実に保つには、これだけでなく、セキュリティの監視、検出および応答の方策を実装することも必要です。

この記事では、インストールと設定の作業において、次の各段階で適用する堅牢化手法について説明します。

  • インストール前: ​この手法は、JEE 上の AEM Forms をインストールする前に実行します。
  • インストール時: ​この手法は、JEE 上の AEM Forms ソフトウェアをインストールする作業の一環として実行します。
  • インストール後: ​この手法は、インストール終了後と、それ以降の定期的な管理作業として実行します。

JEE 上の AEM Forms は詳細なカスタマイズが可能で、様々な環境で動作します。レコメンデーションには、一部の組織のニーズに合わないものも含まれている可能性があります。

インストール前 preinstallation

JEE 上の AEM Forms をインストールする前には、ネットワーク層とオペレーティングシステムに対してセキュリティソリューションを適用することができます。ここでは、いくつかの問題と、この領域におけるセキュリティの脆弱性を減らすためのレコメンデーションについて説明します。

UNIX および Linux へのインストールと設定

JEE 上の AEM Forms のインストール作業や設定作業を実行するときは、ルートシェルを使用しないでください。デフォルトでは、ファイルは /opt ディレクトリの下にインストールされるので、インストールを実行するユーザーには /opt 以下のすべてのファイルの権限が必要です。または、各ユーザーには /user ディレクトリに対するすべてのファイル権限があらかじめ付与されているので、/user ディレクトリにインストールを実行することもできます。

Windows へのインストールと設定

自動オプションインストールを使用して JBoss に JEE 上の AEM Forms をインストールする場合、または PDF Generator をインストールする場合、Windows へのインストールは管理者として実行する必要があります。また、PDF Generator をネイティブアプリケーションサポートと共に Windows にインストールする場合は、Microsoft Office をインストールしたのと同じ Windows ユーザーとしてインストールを実行する必要があります。インストールの権限について詳しくは、お使いのアプリケーションサーバーに対応した* JEE 上の AEM Forms のインストールおよびデプロイ* ドキュメントを参照してください。

ネットワーク層のセキュリティ network-layer-security

ネットワークセキュリティの脆弱性は、インターネットまたはイントラネットに接続しているすべてのアプリケーションサーバーにとって、最も重大な脅威の 1 つです。ここでは、このような脆弱性に対してネットワーク上のホストを堅牢化する手順について説明します。具体的には、ネットワークのセグメント化、TCP/IP(Transmission Control Protocol/Internet Protocol)スタックの堅牢化、ホスト保護のためのファイアウォールの使用などの手順を取り上げます。

次の表では、ネットワークセキュリティの脆弱性を減らすための一般的なプロセスについて説明します。

問題
説明
非武装地帯(DMZ)
forms サーバーを非武装地帯(DMZ)にデプロイします。ファイアウォールの内側に配置された、JEE 上の AEM Forms を実行するアプリケーションサーバーに対して、少なくとも 2 つのレベルでセグメント化が必要です。Web サーバーを含む DMZ から外部ネットワークを分離します。同様に、外部ネットワークは内部ネットワークからも分離している必要があります。ファイアウォールを使用して、この分離した層を実装します。必要最小限のデータのみが許可されるように、各ネットワーク層を通過するトラフィックを分類して制御します。
プライベート IP アドレス
AEM Forms アプリケーションサーバーで、RFC 1918 プライベート IP アドレスと NAT(ネットワークアドレス変換)を使用します。プライベート IP アドレス(10.0.0.0/8、172.16.0.0/12 および 192.168.0.0/16)を割り当てることにより、インターネットを通じて、NAT を使用する内部ホストに対して攻撃者がトラフィックをルーティングできないようにします。
ファイアウォール

次の基準を使用して、ファイアウォールソリューションを選択します。

  • 単純なパケットフィルタリングソリューションではなく、プロキシサーバーまたは「ステートフルインスペクション」をサポートするファイアウォールを実装する。

  • 明示的に許可されたサービス以外はすべて拒否する セキュリティパラダイムをサポートするファイアウォールを使用する。

  • デュアルホームまたはマルチホームのファイアウォールソリューションを実装します。このアーキテクチャは、最高レベルのセキュリティを実現し、権限のないユーザーによるファイアウォールセキュリティの迂回を防ぐのに役立ちます。

データベースポート

データベースには、デフォルトのリスニングポート(MySQL - 3306、Oracle - 1521、MS SQL - 1433)を使用しないでください。データベースポートの変更については、データベースのドキュメントを参照してください。

異なるデータベースポートを使用すると、AEM Forms on JEE の設定全体に影響します。デフォルトのポートを変更する場合は、AEM Forms on JEE のデータソースなど、設定のその他の領域を変更内容に合わせて修正する必要があります。

JEE 上の AEM Forms におけるデータソースの設定について詳しくは、AEM Forms ユーザーガイドの「JEE 上の AEM Forms のインストールおよびアップグレード」または「アプリケーションサーバー用 JEE 上の AEM Forms へのアップグレード」を参照してください。

オペレーティングシステムのセキュリティ operating-system-security

次の表では、オペレーティングシステムで見つかったセキュリティの脆弱性を最小限に抑えるために役立つ、いくつかの潜在的なアプローチについて説明します。

問題
説明
セキュリティパッチ

ベンダーのセキュリティパッチやアップグレードが迅速に適用されないと、権限のないユーザーがアプリケーションサーバーにアクセスするリスクが高まります。実稼動サーバーに適用する前に、セキュリティパッチのテストを実施します。

また、パッチの確認とインストールを定期的に行うためのポリシーとプロシージャを作成します。

ウイルス対策ソフトウェア
ウイルススキャナは、署名のスキャンや異常な動作の監視によって、感染ファイルを識別します。スキャナは、ウイルスの署名をファイルに保存します。このファイルは通常、ローカルハードドライブに格納されます。新しいウイルスは次から次へと出現するので、このファイルを頻繁に更新して、ウイルススキャナで最新のウイルスをすべて識別できるようにしておく必要があります。
ネットワークタイムプロトコル(NTP)
フォレンジック分析のために、Forms サーバーの時刻を正確に保つ必要があります。NTP を使用して、インターネットに直接接続しているすべてのシステムの時刻を同期します。

オペレーティングシステムのその他のセキュリティ情報については、オペレーティングシステムのセキュリティ情報を参照してください。

インストール installation

このセクションでは、AEM Forms のインストールプロセス中にセキュリティの脆弱性を軽減するために使用できる方法について説明します。これらの方法では、状況に応じてインストールプロセスの一部であるオプションを使用します。次のテーブルに、これらの方法を示します。

問題
説明
権限
ソフトウェアのインストールには、必要最小限の権限を使用してください。Administrators グループに属していないアカウントを使用して、コンピューターにログインします。Windows では、runas コマンドを使用して、AEM Forms on JEE インストーラーを管理者ユーザーとして実行することができます。UNIX および Linux システムでは、sudo などのコマンドを使用してソフトウェアをインストールします。
ソフトウェアソース

信頼できないソースから AEM Forms on JEE をダウンロードまたは実行しないでください。

悪意のあるプログラムには、データの盗難、変更と削除、サービス拒否など、様々な方法でセキュリティを侵害するコードが含まれている可能性があります。AEM Forms on JEE は、Adobe DVD または信頼できるソースからのみインストールしてください。

ディスクパーティション
AEM Forms on JEE は、専用のディスクパーティションに配置してください。ディスクのセグメント化は、セキュリティを強化するために、サーバ上の特定のデータを別の物理ディスクに保管するプロセスです。この方法でデータを整理すると、ディレクトリトラバーサル攻撃のリスクを軽減することができます。システムパーティションとは別のパーティションを作成し、そこに AEM Forms on JEE コンテンツディレクトリをインストールすることを検討してください。(Windows の場合、システムパーティションには system32 ディレクトリまたはブートパーティションが含まれます。)
コンポーネント

既存のサービスを評価し、不要なサービスを無効にするかアンインストールします。不要なコンポーネントやサービスをインストールしないでください。

アプリケーションサーバーのデフォルトのインストールには、サーバーの用途によっては不要なサービスが含まれている場合があります。攻撃のエントリポイントを最小限に抑えるには、デプロイメントの前に不要なサービスをすべて無効にしておく必要があります。例えば、JBoss では、META-INF/jboss-service.xml 記述子ファイル内の不要なサービスをコメントアウトできます。

クロスドメインポリシーファイル
サーバー上に crossdomain.xml ファイルが存在すると、そのサーバーを直ちに弱化させる可能性があります。ドメインのリストに可能な限り制限をかけることをお勧めします。ガイド (非推奨) を使用する場合、開発環境から実稼働環境への移行中に使用される crossdomain.xml ファイルを配置しないでください。Web サービスで使用されるガイドの場合、ガイドを提供するサーバーと同じサーバー上にそのサービスがあれば、crossdomain.xml ファイルはまったく必要ありません。しかし、サービスが別のサーバー上にある場合や、クラスターが関係している場合は、crossdomain.xml ファイルが存在している必要があります。crossdomain.xml ファイルについて詳しくは、 https://kb2.adobe.com/cps/142/tn_14213.html を参照してください。
オペレーティングシステムのセキュリティ設定
Solaris プラットフォームで 192 ビットまたは 256 ビット XML 暗号化を使用する必要がある場合、pkcs11_softtoken.so ではなく、必ず pkcs11_softtoken_extra.so をインストールしてください。

インストール後の手順 post-installation-steps

AEM Forms on JEE を正常にインストールした後は、セキュリティの観点から、定期的に環境の保守を行うことが重要です。

次の節では、デプロイ済みのForms Server を保護するために推奨される様々なタスクについて詳しく説明します。

AEM Forms のセキュリティ aem-forms-security

次の推奨設定は、管理 web アプリケーションの外部にある AEM Forms on JEE サーバーに適用されます。サーバーに対するセキュリティリスクを軽減するには、AEM Forms on JEE のインストール直後にこれらの設定を適用します。

セキュリティパッチ

ベンダーのセキュリティパッチやアップグレードが迅速に適用されないと、権限のないユーザーがアプリケーションサーバーにアクセスするリスクが高まります。セキュリティパッチを実稼動サーバーに適用する場合は、事前にテストを実施し、アプリケーションの互換性と可用性を確保します。また、パッチの確認とインストールを定期的に行うためのポリシーとプロシージャを作成します。AEM Forms on JEE のアップデートは、エンタープライズ製品のダウンロードサイトにあります。

サービスアカウント(Windows での JBoss 自動インストールのみ)

AEM Forms on JEE は、デフォルトで LocalSystem アカウントを使用してサービスをインストールします。ビルトインの LocalSystem ユーザーアカウントは管理者グループの一部で、高レベルのアクセシビリティを持ちます。ワーカープロセス ID が LocalSystem ユーザーアカウントとして実行されている場合、そのワーカープロセスにはシステム全体に対するフルアクセス権があります。

管理者以外の特定のアカウントを使用して、AEM Forms on JEE がデプロイされているアプリケーションサーバーを実行するには、次の操作を行います。

  1. Microsoft管理コンソール (MMC) で、Forms Server サービスにログインするためのローカルユーザーを作成します。

    • ユーザーはパスワードを変更できない」を選択します。
    • 所属するグループ ​タブに、「ユーザー」グループが表示されていることを確認してください​
    note note
    NOTE
    PDF Generator に関しては、この設定を変更できません。
  2. 開始設定管理ツールサービス ​を選択します。

  3. AEM Forms on JEE の JBoss をダブルクリックして、サービスを停止します。

  4. ログオン」タブで「このアカウント」を選択し、作成したユーザーアカウントを参照して、アカウントのパスワードを入力します。

  5. MMC で​ ローカルセキュリティ設定 ​を開き、ローカルポリシーユーザー権利の割り当て ​を選択します。

  6. Forms Server を実行しているユーザーアカウントに次の権限を割り当てます。

    • ターミナルサービス経由のログオンを拒否
    • ローカルでのログオンを拒否する
    • サービスとしてログオン(通常は既に設定済み)
  7. 次のディレクトリの新しいユーザーアカウントに変更権限を付与します。

    • グローバルドキュメントストレージ (GDS) ディレクトリ:GDS ディレクトリの場所は、AEM Forms のインストールプロセス中に手動で設定します。インストール時に場所を指定しないと、[JBoss root]/server/[type]/svcnative/DocumentStorage にあるアプリケーションサーバーのインストールディレクトリの下にあるディレクトリがデフォルトの場所になります。

    • CRX リポジトリディレクトリ:デフォルトの場所は [AEM-Forms-installation-location]\crx-repository です。

    • AEM Forms 一時ディレクトリ

      • (Windows)環境変数で設定されている TMP または TEMP パス
      • (AIX、Linux、Solaris)ログインユーザーのホームディレクトリ
        UNIX ベースのシステムでは、root 以外のユーザーは次のディレクトリを一時ディレクトリとして使用できます。
      • (Linux)/var/tmp または /usr/tmp
      • (AIX)/tmp または /usr/tmp
      • (Solaris)/var/tmp または /usr/tmp
  8. 新しいユーザーアカウントに、次のディレクトリへの書き込み権限を付与します。

    • [JBoss ディレクトリ]\standalone\deployment
    • [JBoss ディレクトリ]\standalone\
    • [JBoss ディレクトリ]\bin\
    note note
    NOTE
    JBoss Application サーバーのデフォルトのインストール場所:
    • Windows:C:\Adobe\Adobe_Experience_Manager_Forms\jboss
    • Linux:/opt/jboss/
  9. アプリケーションサーバーを起動します。

Configuration Manager ブートストラップサーブレットの無効化

Configuration Manager は、アプリケーションサーバーにデプロイ済みのサーブレットを利用して、AEM Forms on JEE データベースのブートストラップを実行します。Configuration Manager は、設定が完了する前にこのサーブレットにアクセスするので、承認済みユーザーのみにアクセスを限定するセキュリティは施されていません。Configuration Manager を使用して AEM Forms on JEE の設定を完了した後は、このサーブレットを無効にしてください。

  1. adobe-livecycle-[appserver].ear ファイルを解凍します。

  2. META-INF/application.xml ファイルを開きます。

  3. adobe-bootstrapper.war セクションを検索します。

    code language-java
    <!-- bootstrapper start -->
    <module id="WebApp_adobe_bootstrapper">
        <web>
            <web-uri>adobe-bootstrapper.war</web-uri>
            <context-root>/adobe-bootstrapper</context-root>
        </web>
    </module>
    <module id="WebApp_adobe_lcm_bootstrapper_redirector">
        <web>
            <web-uri>adobe-lcm-bootstrapper-redirector.war</web-uri>
            <context-root>/adobe-lcm-bootstrapper</context-root>
        </web>
    </module>
    <!-- bootstrapper end-->
    
  4. AEM Forms サーバーを停止します。

  5. adobe-bootstrapper.war および adobe-lcm-bootstrapper-redirectory. war モジュールを次のようにコメントアウトします。

    code language-java
    <!-- bootstrapper start -->
    <!--
    <module id="WebApp_adobe_bootstrapper">
        <web>
            <web-uri>adobe-bootstrapper.war</web-uri>
            <context-root>/adobe-bootstrapper</context-root>
        </web>
    </module>
    <module id="WebApp_adobe_lcm_bootstrapper_redirector">
        <web>
            <web-uri>adobe-lcm-bootstrapper-redirector.war</web-uri>
            <context-root>/adobe-lcm-bootstrapper</context-root>
        </web>
    </module>
    -->
    <!-- bootstrapper end-->
    
  6. META-INF/application.xml ファイルを保存して閉じます。

  7. EAR ファイルを zip 形式で圧縮し、アプリケーションサーバーに再デプロイします。

  8. AEM Forms サーバーを起動します。

  9. 以下の URL をブラウザーに入力して変更をテストし、URL が機能しないことを確認します。

    https://<localhost>:<port>/adobe-bootstrapper/bootstrap

Trust Store へのリモートアクセスのロックダウン

Configuration Manager を使用すると、Acrobat Reader DC Extensions の資格情報を AEM Forms on JEE の Trust Store にアップロードできます。つまり、リモートプロトコル(SOAP および EJB)経由の Trust Store 資格情報サービスへのアクセスは、デフォルトで有効になっています。このアクセスは、Configuration Manager を使用して使用権限資格情報のアップロードを完了した後、または後で管理コンソールを使用して資格情報を管理することにした場合は、必要なくなります。

の節の手順に従って、すべての Trust Store サービスへのリモートアクセスを無効にできます サービスへの不要なリモートアクセスの無効化.

すべての不要な匿名アクセスの無効化

一部のForms Server サービスには、匿名の呼び出し元によって呼び出される操作があります。 このようなサービスへの匿名アクセスが不要な場合は、サービスへの不要な匿名アクセスの無効化の手順に従って、アクセスを無効にしてください。

デフォルトの管理者パスワードの変更 change-the-default-administrator-password

AEM Forms on JEE がインストールされると、上級管理者ユーザーまたはログイン ID 管理者ユーザーに対して、デフォルトのパスワードが password のデフォルトユーザーアカウントが 1 つ設定されます。このパスワードは、Configuration Manager を使用して直ちに変更してください。

  1. Web ブラウザーに次の URL を入力します。

    code language-java
    https://[host name]:[port]/adminui
    

    デフォルトのポート番号は次のいずれかです。

    JBoss: 8080

    WebLogic Server: 7001

    WebSphere: 9080。

  2. ユーザー名 ​フィールドに administrator と入力し、パスワード ​フィールドに password と入力します。

  3. 設定User Managementユーザーとグループ ​をクリックします。

  4. 検索 ​フィールドに administrator と入力し、検索 ​をクリックします。

  5. ユーザーのリストで「上級管理者」をクリックします。

  6. ユーザーを編集ページで「パスワードの変更」をクリックします。

  7. 新しいパスワードを指定し、「保存」をクリックします。

さらに、次の手順を実行して、CRX 管理者のデフォルトのパスワードを変更することをお勧めします。

  1. デフォルトのユーザー名/パスワードを使用して、https://[server]:[port]/lc/libs/granite/security/content/useradmin.html にログインします。
  2. 検索フィールドに「管理者」と入力し、移動 ​をクリックします。
  3. 検索結果から「管理者」を選択し、ユーザーインターフェイスの右下で「編集」アイコンをクリックします。
  4. 新しいパスワード」フィールドに新しいパスワードを、「パスワード」フィールドに古いパスワードを指定します。
  5. ユーザーインターフェイスの右下で「保存」アイコンをクリックします。

WSDL の生成の無効化 disable-wsdl-generation

Web Service Definition Language(WSDL)の生成は、開発者が WSDL の生成を使用してクライアントアプリケーションを構築する開発環境でのみ有効にしてください。実稼働環境では、WSDL の生成を無効にして、サービスの内部詳細が公開されないようにすることができます。

  1. Web ブラウザーに次の URL を入力します。

    code language-java
    https://[host name]:[port]/adminui
    
  2. 選択 設定/コアシステム設定/設定.

  3. 選択を解除 WSDL を有効にする ​を選択し、「 OK.

アプリケーションサーバーのセキュリティ application-server-security

次の表では、AEM Forms on JEE アプリケーションのインストール後にアプリケーションサーバーを保護するためのいくつかの手法について説明します。

問題
説明
アプリケーションサーバー管理コンソール
アプリケーションサーバーで AEM Forms on JEE のインストール、設定およびデプロイを完了したら、アプリケーションサーバー管理コンソールへのアクセスを無効にする必要があります。詳しくは、アプリケーションサーバーのドキュメントを参照してください。
アプリケーションサーバーの Cookie 設定

アプリケーションの Cookie は、アプリケーションサーバーが管理しています。アプリケーションのデプロイ時に、アプリケーションサーバー管理者が、サーバー全体または個別のアプリケーションに対して Cookie の環境設定を指定できます。デフォルトでは、サーバー設定が優先されます。

アプリケーションサーバーで生成されるすべてのセッション cookie に HttpOnly 属性が含まれている必要があります。例えば、JBoss アプリケーションサーバーを使用する場合、WEB-INF/web.xml ファイルで、SessionCookie 要素を httpOnly="true" に変更できます。

HTTPS のみを使用して送信するように Cookie を制限することができます。この場合、Cookie が暗号化されずに HTTP で送信されることはありません。アプリケーションサーバーの管理者は、サーバーの Cookie 保護をグローバルに有効にする必要があります。例えば、JBoss アプリケーションサーバーを使用する場合、server.xml ファイルで、コネクタ要素を secure=true に変更できます。

Cookie の設定について詳しくは、アプリケーションサーバーのドキュメントを参照してください。

ディレクトリの参照

存在しないページに対するリクエストや、ディレクトリ名に対するリクエスト(末尾がスラッシュ(/)のリクエスト文字列)が行われた場合、アプリケーションサーバーからディレクトリの内容が返されないようにする必要があります。それには、アプリケーションサーバー上のディレクトリ参照を無効にします。管理コンソールアプリケーションおよびサーバー上で動作している他のアプリケーションについても、ディレクトリ参照を無効にしてください。

JBoss の場合、次の例に示すように、web.xml ファイルで DefaultServlet プロパティの初期化パラメーターの listings 値を false に設定します。

<servlet>

<servlet-name>default</servlet-name>

<servlet-class>

org.apache.catalina.servlets.DefaultServlet

</servlet-class>

<init-param>

<param-name>listings</param-name>

<param-value>false</param-value>

</init-param>

<load-on-startup>1</load-on-startup>

</servlet>

WebSphere の場合、ibm-web-ext.xmi ファイルの directoryBrowsingEnabled プロパティを false に設定します。

WebLogic の場合、次の例に示すように、weblogic.xml ファイルの index-directories プロパティを false に設定します。

<container-descriptor>

<index-directory-enabled>false

</index-directory-enabled>

</container-descriptor>

データベースのセキュリティ database-security

データベースを保護する場合は、データベースのベンダーが提示する対策を実装してください。データベースのユーザーには、AEM Forms on JEE でデータベースを使用するために必要な最小限の権限を付与するようにします。例えば、データベース管理者権限を持つアカウントは使用しないでください。

Oracleでは、使用するデータベースアカウントに必要な権限は、CONNECT、RESOURCE および CREATE VIEW のみです。他のデータベースに関する同様の要件については、AEM Forms on JEE のインストールの準備(シングルサーバー)を参照してください。

Windows 上での SQL サーバーの統合セキュリティの設定(JBoss 版) configuring-integrated-security-for-sql-server-on-windows-for-jboss

  1. 次の例に示すように、[JBOSS_HOME]\standalone\configuration\lc_{datasource.xml} を変更して、integratedSecurity=true を接続 URL に追加します。

    code language-java
     jdbc:sqlserver://<serverhost>:<port>;databaseName=<dbname>;integratedSecurity=true
    
  2. アプリケーションサーバーを実行しているコンピューターの Windows システムパスに sqljdbc_auth.dll ファイルを追加します。sqljdbc_auth.dll ファイルは、Microsoft SQL JDBC 6.2.1.0 ドライバーのインストールフォルダー内にあります。

  3. JBoss Windows サービス(JBoss for AEM Forms on JEE)のログオンプロパティを、ローカルシステムから、AEM Forms データベースと最低限の権限を持つログインアカウントに変更します。Windows サービスとしてではなくコマンドラインから JBoss を実行している場合は、この手順を実行する必要はありません。

  4. SQL Server のセキュリティを「混合」モードから「Windows 認証のみ」に変更します。

Windows 上での SQL サーバーの統合セキュリティの設定(WebLogic 版) configuring-integrated-security-for-sql-server-on-windows-for-weblogic

  1. Web ブラウザーの URL 行に次の URL を入力して、WebLogic Server 管理コンソールを起動します。

    code language-java
    https://[host name]:7001/console
    
  2. Change Center で、「Lock & Edit」をクリックします。

  3. 「ドメイン構造」で、[base_domain]サービスJDBCデータソース をクリックし、右側のパネルで「IDP_DS」をクリックします。

  4. 次の画面の「設定」タブで「接続プール」タブをクリックし、「プロパティ」ボックスに integratedSecurity=true と入力します。

  5. 「ドメイン構造」で、[base_domain]サービスJDBCデータソース をクリックし、右側のパネルで「RM_DS」をクリックします。

  6. 次の画面の「設定」タブで「接続プール」タブをクリックし、「プロパティ」ボックスに integratedSecurity=true と入力します。

  7. アプリケーションサーバーを実行しているコンピューターの Windows システムパスに sqljdbc_auth.dll ファイルを追加します。sqljdbc_auth.dll ファイルは、Microsoft SQL JDBC 6.2.1.0 ドライバーのインストールフォルダー内にあります。

  8. SQL Server のセキュリティを「混合」モードから「Windows 認証のみ」に変更します。

Windows 上での SQL サーバーの統合セキュリティの設定(WebSphere 版) configuring-integrated-security-for-sql-server-on-windows-for-websphere

WebSphere では、統合セキュリティを設定できるのは、外部の SQL Server JDBC ドライバーを使用している場合のみです。WebSphere の埋め込みの SQL Server JDBC ドライバーを使用している場合は設定できません。

  1. WebSphere Administrative Console にログインします。
  2. ナビゲーションツリーで、リソースJDBCデータソース をクリックし、右側のパネルで「IDP_DS」をクリックします。
  3. 右側のパネルの「追加のプロパティ」で「カスタムプロパティ」をクリックし、「新規」をクリックします。
  4. 名前」ボックスに integratedSecurity と入力し、「」ボックスに true と入力します。
  5. ナビゲーションツリーで、リソースJDBCデータソース をクリックし、右側のパネルで「RM_DS」をクリックします。
  6. 右側のパネルの「追加のプロパティ」で「カスタムプロパティ」をクリックし、「新規」をクリックします。
  7. 名前」ボックスに integratedSecurity と入力し、「」ボックスに true と入力します。
  8. WebSphere がインストールされているコンピューター上で、Windows システムパス(C:¥Windows)に sqljdbc_auth.dll ファイルを追加します。sqljdbc_auth.dll ファイルは、Microsoft SQL JDBC 1.2 ドライバーのインストール先ディレクトリ(デフォルトは *[InstallDir]*¥sqljdbc_1.2¥enu¥auth¥x86)と同じ場所にあります。
  9. スタートコントロールパネルサービス ​を選択し、WebSphereの Windows サービス(IBM WebSphere Application Server <version> - <node>)を右クリックして、「プロパティ」を選択します。
  10. プロパティダイアログボックスで、「ログオン」タブをクリックします。
  11. アカウント」を選択し、使用するログインアカウントの設定に必要な情報を入力します。
  12. SQL Server のセキュリティを「混合」モードから「Windows 認証のみ」に変更します。

データベース内の機密性の高いコンテンツへのアクセスの保護 protecting-access-to-sensitive-content-in-the-database

AEM Forms データベーススキーマには、システム設定やビジネスプロセスに関する機密性の高い情報が含まれているので、ファイアウォールの内側に隠しておく必要があります。データベースは、Forms Server と同じ信頼境界内にあると見なす必要があります。 情報の意図しない開示やビジネスデータの盗難を防ぐために、データベース管理者(DBA)は、権限のある管理者のみにアクセスを制限するようにデータベースを設定する必要があります。

追加の予防策として、データベースベンダー固有のツールを使用して、次のデータを含んだテーブルの列を暗号化することを検討してください。

  • Rights Management ドキュメントキー
  • Trust Store HSM PIN 暗号化キー
  • ローカルユーザーのパスワードハッシュ

ベンダー固有のツールについて詳しくは、データベースのセキュリティ情報を参照してください。

LDAP セキュリティ ldap-security

LDAP(Lightweight Directory Access Protocol)ディレクトリは、通常、AEM Forms on JEE で、エンタープライズユーザーおよびグループ情報のソースとして、またパスワード認証を実行する手段として使用されます。LDAP ディレクトリが SSL(Secure Socket Layer)を使用するように設定されていることと、AEM Forms on JEE が SSL ポートを使用して LDAP ディレクトリにアクセスするように設定されていることを確認してください。

LDAP のサービス拒否 ldap-denial-of-service

LDAP を使用した最もよく行われる攻撃は、攻撃者が大量の認証エラーを故意に引き起こすというものです。この攻撃を受けると、LDAP ディレクトリサーバーは、すべての LDAP 依存のサービスからユーザーをロックアウトしなければならなくなります。

AEM Forms への認証にユーザーが繰り返し失敗した場合に、AEM Forms で試行できるエラー回数およびそれに伴うロックアウト時間を設定できます。管理コンソールでは、小さい値を選択します。認証エラーの許容回数を選択する場合は、許容回数に達した後に、LDAP ディレクトリサーバーより前に AEM Forms によってユーザーがロックアウトされることを理解することが重要です。

自動アカウントロックの設定 set-automatic-account-locking

  1. 管理コンソールにログインします。
  2. 設定User Managementドメイン管理 ​をクリックします。
  3. 自動アカウントロックの設定で、「連続する認証エラーの最大回数」を 3 などの低い数に設定します。
  4. 保存」をクリックします。

監査とログ auditing-and-logging

アプリケーションの監査およびログ機能を適切に保護した状態で使用することで、セキュリティを確保し、他の異常なイベントをできるだけ迅速に追跡し、検出するのに役立ちます。アプリケーション内での監査とログの有効な使用には、成功したログインと失敗したログインの追跡、およびキーレコードの作成や削除などの主要なアプリケーションイベントが含まれます。

監査を使用して、次のような様々な種類の攻撃を検出できます。

  • ブルートフォースパスワードアタック
  • サービス拒否攻撃
  • 敵意のある入力のインジェクションおよび関連するクラスのスクリプティング攻撃

次の表は、サーバーの脆弱性を軽減するために使用できる監査およびログの手法を説明します。

問題
説明
ログファイル ACL

適切な JEE 上の AEM Forms ファイルアクセス制御リスト(ACL)を設定します。

適切な認証情報を設定することで、攻撃者によるファイルの削除を防ぐことができます。

ログファイルディレクトリのセキュリティ権限は、管理者および SYSTEM グループに対するフルコントロール権限が必要です。AEM Forms ユーザーアカウントには、読み取りおよび書き込み権限のみが必要です。

ログファイルの冗長性

リソースが許可されている場合は、Syslog、Tivoli、Microsoft Operations Manager(MOM)サーバーまたは別のメカニズムを使用して、攻撃者がアクセスできないように(書き込み専用)リアルタイムで別のサーバーにログを送信します。

この方法でログを保護することで、改ざんを防ぐことができます。また、中央リポジトリにログを保存すると、相関性と監視に役立ちます(例えば、複数の Forms サーバーを使用している場合に、パスワードの照会先となる複数のコンピューターに対してパスワード推測攻撃が行われた場合など)。

管理者以外のユーザーに対して、PDF Generator の実行を許可する

管理者以外のユーザーに対して、PDF Generator の使用を許可できます。通常は、管理者権限を持つユーザーのみが PDF Generator を使用できます。管理者以外のユーザーが PDF Generator を実行できるようにするには、次の手順を実行します。

  1. PDFG_NON_ADMIN_ENABLED という名前の環境変数を作成します。

  2. 変数の値を TRUE に設定します。

  3. AEM Forms のインスタンスを再起動します。

NOTE
「Ctrl + C」コマンドを使用して SDK を再起動することをお勧めします。 別の方法(Java プロセスの停止など)を使用してAEM SDK を再起動すると、AEM開発環境で不整合が生じる場合があります。

社外からのアクセスを可能にするための JEE 上の AEM Forms の設定 configuring-aem-forms-on-jee-for-access-beyond-the-enterprise

JEE 上の AEM Forms を正常にインストールした後は、環境のセキュリティを定期的に維持することが重要です。この節では、JEE 上の AEM Forms 実稼働サーバーのセキュリティを維持するために推奨されるタスクについて説明します。

Web アクセス用のリバースプロキシの設定 setting-up-a-reverse-proxy-for-web-access

リバースプロキシ ​を使用して、外部ユーザーと内部ユーザーの両方が、JEE 上のAEM Forms web アプリケーションの 1 つの URL セットを使用できるようにします。この設定は、JEE 上の AEM Forms を実行するアプリケーションサーバーにユーザーが直接接続することを許可するよりもさらに安全です。リバースプロキシは、JEE 上の AEM Forms を実行するアプリケーションサーバーに対するすべての HTTP リクエストを実行します。ユーザーは、リバースプロキシに対するネットワークアクセスしか持たないので、リバースプロキシでサポートされる URL 接続のみを試行できます。

リバースプロキシサーバーで使用する JEE 上の AEM Forms ルート URL

JEE 上の AEM Forms web アプリケーションのアプリケーションルート URL を次に示します。リバースプロキシは、エンドユーザーに提供する web アプリケーション機能の URL を公開するように設定する必要があります。

特定の URL は、エンドユーザー向けの web アプリケーションとして強調表示されます。Configuration Manager のその他の URL は、リバースプロキシを介した外部ユーザーのアクセス向けに公開することは避けるべきです。

ルート URL
目的または関連する web アプリケーション
Web ベースのインターフェイス
エンドユーザーアクセス
/ReaderExtensions/*
使用権限を PDF ドキュメントに適用する Acrobat Reader DC Extensions エンドユーザー web アプリケーション
はい
はい
/edc/*
Rights Management エンドユーザー web アプリケーション
はい
はい
/edcws/*
Rights Management の web サービス URL
いいえ
はい
/pdfgui/*
PDF Generator 管理 web アプリケーション
はい
はい
/workspace/*
Workspace エンドユーザー web アプリケーション
はい
はい
/workspace-server/*
Workspace クライアントアプリケーションに必要な Workspace サーブレットおよびデータサービス
はい
はい
/adobe-bootstrapper/*
AEM Forms on JEE リポジトリをブートストラップするためのサーブレット
いいえ
不可
/soap/*
Forms Server Web サービスの情報ページ
いいえ
不可
/soap/services/*
すべてのForms Server サービスの Web サービス URL
いいえ
不可
/edc/admin/*
Rights Management 管理 web アプリケーション
はい
いいえ
/adminui/*
管理コンソールのホームページ
はい
いいえ

/TruststoreComponent/

secured/*

Trust Store Management 管理ページ
はい
いいえ
/FormsIVS/*
フォームのレンダリングのテストとデバッグを行う Forms IVS アプリケーション
はい
いいえ
/OutputIVS/*
Output サービスのテストとデバッグを行う Output IVS アプリケーション
はい
いいえ
/rmws/*
Rights Management のための REST URL
いいえ
はい
/OutputAdmin/*
Output 管理ページ
はい
いいえ
/FormServer/*
Forms web アプリケーションファイル
はい
いいえ

/FormServer/GetImage

サーブレット

HTML 変換時に JavaScript の取得に使用
いいえ
不可
/FormServerAdmin/*
Forms 管理ページ
はい
いいえ
/repository/*
WebDAV(デバッグ)アクセス用の URL
はい
いいえ
/AACComponent/*
アプリケーションおよびサービスユーザーインターフェイス
はい
いいえ
/WorkspaceAdmin/*
Workspace 管理ページ
はい
いいえ
/rest/*
その他のサポートページ
はい
いいえ
/CoreSystemConfig/*
AEM Forms on JEE コア設定ページ
はい
いいえ
/um/
User Management 認証
いいえ
はい
/um/*
User Management 管理インターフェイス
はい
いいえ
/DocumentManager/*
HTTP ドキュメント対応の SOAP トランスポートまたは EJB トランスポート経由でリモートエンドポイント、SOAP WSDL エンドポイントおよび Java SDK にアクセスするときに、処理するドキュメントをアップロードおよびダウンロードします。
はい
はい

クロスサイトリクエストフォージェリー攻撃からの保護 protecting-from-cross-site-request-forgery-attacks

クロスサイト要求偽造(CSRF)攻撃とは、ユーザーに対する web サイトの信頼を悪用して、ユーザーが許可していないコマンドを知らないうちに送信することです。この攻撃は、web ページ上に配置したリンクまたはスクリプトや、メールメッセージに含めた URL を介して、既にユーザーの認証が済んでいる別のサイトへのアクセスを達成するという形で行われます。

例えば、管理者は、他の web サイトを閲覧しながら管理コンソールにログインすることがあります。CSRF 攻撃者は、このような状況を狙って、閲覧されるサイトの web ページに含まれている HTML img タグの src 属性などに、攻撃対象 web サイト内のサーバー側スクリプトを参照する URL を記述しておきます。ウェブブラウザが提供する cookie ベースのセッション認証メカニズムを使用することで、攻撃者のウェブサイトは、正当なユーザーを装って、攻撃者のサーバー側スクリプトに悪意のある要求を送信する可能性があります。 その他の例については、 https://owasp.org/www-community/attacks/csrf#Examples を参照してください。

CSRF に共通の特性は次のとおりです。

  • ユーザーの ID に頼るサイトに関与する。
  • その ID に対するサイトの信頼を悪用する。
  • ユーザーのブラウザーをだましてターゲットサイトに HTTP リクエストを送信させる。
  • 副作用のある HTTP リクエストに関与する。

JEE 上の AEM Forms では、リファラーフィルター機能を使用して CSRF 攻撃を防ぎます。ここでは、次の用語を使用してリファラーフィルターメカニズムについて説明します。

  • 許可されているリファラー: ​リファラーは、リクエストをサーバーに送信するソースページのアドレスです。JSP ページまたはフォームの場合、リファラーは一般的にブラウザー履歴の前のページになります。画像のリファラーは、通常、画像が表示されるページです。許可されているリファラーリストにリファラーを追加すると、サーバーリソースにアクセスできるリファラーを識別できます。
  • 許可されているリファラーの例外: ​許可されているリファラーリストの特定のリファラーに対して、アクセス範囲を制限することができます。この制限を適用するには、そのリファラーのパスを、許可されているリファラーの例外リストに個別に追加します。許可されているリファラーの例外リストのパスから要求を受け取っても、Formsサーバー上のリソースを呼び出すことはできません。 許可されているリファラーの例外リストは、特定のアプリケーションに対して定義できます。また、すべてのアプリケーションに適用される例外のグローバルリストを使用することもできます。
  • 許可されている URI: ​リファラーヘッダーを確認ぜずに提供されるリソースのリストです。例えば、サーバーの状態に変更を加えることのない、リソースのヘルプページをこのリストに追加できます。許可されている URI リストのリソースは、リファラーが何であっても、リファラーフィルターでブロックされることはありません。
  • ヌルリファラー: ​関連付けられていない、または送信元が親 web ページではないサーバーリクエストは、ヌルリファラーからのリクエストと見なされます。例えば、新しいブラウザーウィンドウを開き、アドレスを入力して、Enter キーを押すと、サーバーには Null リファラーが送信されます。Web サーバーに HTTP リクエストを送信するデスクトップアプリケーション(.NET または SWING)も、Null リファラーをサーバーに送信します。

リファラーフィルタリング referer-filtering

ここでは、リファラーのフィルタリングプロセスについて説明します。

  1. Forms サーバーが、呼び出しに使用される HTTP メソッドを確認します。

    1. POSTの場合、Formsサーバーはリファラーヘッダーのチェックを実行します。
    2. GETの場合、Formsサーバーはリファラーチェックをバイパスします。ただし、 CSRF_CHECK_GETS が true に設定されている場合、リファラーヘッダーのチェックが実行されます。 CSRF_CHECK_GETS は、アプリケーションの web.xml ファイル内に設定されます。
  2. Formsサーバーは、要求された URI がサーバーに存在するかどうかを確認し許可リストに加えるます。

    1. URI が許可リストに登録されている場合、サーバーはリクエストを受け入れます。
    2. リクエストされた URI が許可リストに登録されていなかった場合、サーバーはリクエストのリファラーを取得します。
  3. リクエスト内にリファラーがある場合、サーバーはそれが許可されているリファラーかどうかを確認します。許可されている場合は、リファラーの例外を確認します。

    1. 例外の場合、リクエストはブロックされます。
    2. 例外でない場合、リクエストは渡されます。
  4. リクエスト内にリファラーが指定されていない場合、サーバーは Null リファラーが許可されているかどうかを確認します。

    1. Null リファラーが許可されている場合は、リクエストが渡されます。
    2. Null リファラーが許可されていない場合、サーバーは要求された URI が Null リファラーの例外に相当するかどうかを確認し、適宜リクエストを処理します。

リファラーフィルタリングの管理 managing-referer-filtering

JEE 上の AEM Forms には、ご使用のサーバーのリソースへのアクセスを許可するリファラーを指定するためのリファラーフィルターが用意されています。デフォルトの場合、リファラーフィルターでは安全な HTTP メソッド(GET など)を使用したリクエストはフィルタリングされません。ただし、CSRF_CHECK_GETS が true にセットされている場合は除きます。許可されているリファラーのエントリにあるポート番号が 0 に設定されている場合、JEE 上の AEM Forms では、ポート番号とは関係なく、ホストからのリクエストがすべてリファラーと共に許可されます。ポート番号が指定されていない場合は、デフォルトのポート 80(HTTP)またはポート 443(HTTPS)からのリクエストのみが許可されます。許可されているリファラーリストのすべてのエントリが削除されると、リファラーフィルタリングは無効になります。

Document Services を最初にインストールすると、許可されているリファラーリストは、Document Services がインストールされたサーバーのアドレスで更新されます。サーバーのエントリには、サーバー名、IPv4 アドレス、IPv6 アドレス(IPv6 が有効の場合)、ループバックアドレス、localhost エントリなどがあります。許可されているリファラーのリストに追加された名前は、ホストのオペレーティングシステムから返されます。例えば、IP アドレスが10.40.54.187のサーバーには、次のエントリが含まれます。 https://server-name:0, https://10.40.54.187:0, https://127.0.0.1:0, http://localhost:0. ホストのオペレーティングシステムから返された正規でない名前(IPv4 アドレス、IPv6 アドレスのない名前、または完全修飾のないドメイン名)については、許可リストは更新されません。許可されているリファラーリストを、ビジネス環境に合わせて変更します。デフォルトの許可されているリファラーリストを使用して、実稼動環境にFormsサーバーをデプロイしないでください。 許可されているリファラー、リファラーの例外または URI を変更したら、必ずサーバーを再起動して、その変更を有効にします。

許可されているリファラーリストの管理

許可されているリファラーリストは、管理コンソールの User Management インターフェイスから管理できます。User Management インターフェイスを使用すると、リストを作成、編集または削除できます。許可されているリファラーのリストの操作について詳しくは、管理ヘルプ ​のCSRF 攻撃の防止を参照してください。

許可されているリファラーの例外および許可されている URI のリストの管理

JEE 上の AEM Forms には、許可されているリファラーの例外と許可されている URI の各リストを管理するための API が用意されています。この API を使用すると、リストを取得、作成、編集または削除できます。使用可能な API のリストを次に示します。

  • createAllowedURIsList
  • getAllowedURIsList
  • updateAllowedURIsList
  • deleteAllowedURIsList
  • addAllowedRefererExceptions
  • getAllowedRefererExceptions
  • updateAllowedRefererExceptions
  • deleteAllowedRefererExceptions

API について詳しくは、AEM Forms on JEE の API リファレンス を参照してください。

以下を使用します。 LC_GLOBAL_ALLOWED_REFERER_EXCEPTION 許可されるリファラー例外のリストをグローバルレベルで表示します。つまり、すべてのアプリケーションに適用できる例外を定義します。 このリストには、絶対パス(例:/index.html)または相対パス(例:/sample/)のいずれかの URI のみが記載されます。また、相対 URI の末尾に正規表現を追加することもできます(例:/sample/(.)*)。

LC_GLOBAL_ALLOWED_REFERER_EXCEPTION リストの ID は、com.adobe.idp.um.api 名前空間の UMConstants クラスで定数として定義されており、adobe-usermanager-client.jar にあります。この AEM Forms API を使用すると、リストを取得、作成、編集または削除できます。例えば、グローバルで許可されているリファラーの例外のリストを作成するには、次を使用します。

addAllowedRefererExceptions(UMConstants.LC_GLOBAL_ALLOWED_REFERER_EXCEPTION, Arrays.asList("/index.html", "/sample/(.)*"))

アプリケーション固有の例外については、CSRF_ALLOWED_REFERER_EXCEPTIONS ​リストを使用します。

リファラーフィルターの無効化

リファラーフィルターによってForms Server へのアクセスが完全にブロックされ、許可されたリファラーリストを編集できない場合は、サーバー起動スクリプトを更新して、リファラーフィルタリングを無効にできます。

それには、起動スクリプトに-Dlc.um.csrffilter.disabled=trueJAVA 引数を追加してから、サーバーを再起動してください。許可されているリファラーリストを適切に再設定したら、JAVA 引数は必ず削除してください。

カスタム WAR ファイルのリファラーフィルタリング

JEE 上のAEM Formsと連携してビジネス要件を満たすためにカスタム WAR ファイルを作成している場合もあります。 カスタム WAR ファイルに対してリファラーフィルタリングを有効にするには、adobe-usermanager-client.jar ​を WAR のクラスパスに追加し、次のパラメーターを含むフィルターエントリを* web.xml* ファイルに追加してください。

CSRF_CHECK_GETS は、GET 要求でリファラーチェックを制御します。このパラメーターが定義されていない場合、デフォルト値は false に設定されます。このパラメーターは、GET リクエストをフィルタリングする場合にのみ指定します。

CSRF_ALLOWED_REFERER_EXCEPTIONS は、許可されているリファラーの例外リストの ID です。リファラーフィルターは、リスト ID で識別されるリスト内のリファラーからの要求がFormsサーバー上のリソースを呼び出すのを防ぎます。

CSRF_ALLOWED_URIS_LIST_NAME は、許可されている URI リストの ID です。リファラーフィルターは、リクエストのリファラーヘッダーの値に関係なく、リスト ID で特定されたリストのリソースに対するリクエストをブロックしません。

CSRF_ALLOW_NULL_REFERER ​は、リファラーが Null の場合または存在しない場合のリファラーフィルターの動作を制御します。このパラメーターが定義されていない場合、デフォルト値は false に設定されます。このパラメーターは、Null リファラーを許可する場合にのみ指定します。Null リファラーを許可すると、ある種のクロスサイト要求偽造攻撃を許可してしまう可能性があります。

CSRF_NULL_REFERER_EXCEPTIONS は、リファラーが Null の場合にリファラーチェックが行われない URI のリストです。このパラメーターは、CSRF_ALLOW_NULL_REFERER が false に設定されている場合にのみ有効です。リスト内で複数の URI を指定するときはコンマで区切ります。

サンプル WAR ファイルに対する web.xml ファイルのフィルターエントリの例を次に示します。

<filter>
       <filter-name> filter-name </filter-name>
       <filter-class> com.adobe.idp.um.auth.filter.RemoteCSRFFilter </filter-class>
     <!-- default is false -->
     <init-param>
      <param-name> CSRF_ALLOW_NULL_REFERER </param-name>
      <param-value> false </param-value>
     </init-param>
     <!-- default is false -->
     <init-param>
      <param-name> CSRF_CHECK_GETS </param-name>
      <param-value> true </param-value>
     </init-param>
     <!-- Optional -->
     <init-param>
       <param-name> CSRF_NULL_REFERER_EXCEPTIONS </param-name>
       <param-value> /SAMPLE/login, /SAMPLE/logout  </param-value>
     </init-param>
     <!-- Optional -->
     <init-param>
      <param-name> CSRF_ALLOWED_REFERER_EXCEPTIONS </param-name>
      <param-value> SAMPLE_ALLOWED_REF_EXP_ID </param-value>
     </init-param>
     <!-- Optional -->
     <init-param>
      <param-name> CSRF_ALLOWED_URIS_LIST_NAME </param-name>
      <param-value> SAMPLE_ALLOWED_URI_LIST_ID     </param-value>
     </init-param>
</filter>
    ........
    <filter-mapping>
      <filter-name> filter-name </filter-name>
      <url-pattern>/*</url-pattern>
    </filter-mapping>

トラブルシューティング

適切なサーバーリクエストが CSRF フィルターによってブロックされる場合は、次のいずれかを試してみてください。

  • 拒否されたリクエストにリファラーヘッダーがある場合は、許可されているリファラーリストにそのリファラーを追加することを慎重に検討します。信頼できるリファラーのみを追加します。
  • 拒否されたリクエストにリファラーヘッダーがない場合は、リファラーヘッダーを含めるようにクライアントアプリケーションを変更します。
  • クライアントがブラウザーで動作できる場合は、そのデプロイメントモデルを試してみます。
  • 最後の手段として、許可されている URI リストにリソースを追加できます。ただし、これは推奨設定ではありません。

保護されたネットワーク設定 secure-network-configuration

ここでは、JEE 上の AEM Forms が必要とするプロトコルとポートについて説明し、保護されたネットワーク設定で JEE 上の AEM Forms をデプロイするためのレコメンデーションを示します。

JEE 上の AEM Forms で使用されるネットワークプロトコル network-protocols-used-by-aem-forms-on-jee

前の節で説明したように、保護されたネットワークアーキテクチャを設定する場合、エンタープライズネットワーク内の JEE 上の AEM Forms と他のシステムのやり取りのために次のネットワークプロトコルが必要です。

プロトコル
使用方法
HTTP
  • Configuration Manager およびエンドユーザー web アプリケーションをブラウザーに表示する

  • すべての SOAP 接続

SOAP
  • .NET アプリケーションなどの web サービスクライアントアプリケーション

  • Adobe Reader® は JEE 上の AEM Forms サーバー web サービスとのやり取りに SOAP を使用

  • AdobeFlash®アプリケーションは、Forms Server Web サービス用の SOAP を使用します

  • SOAP モードで使用された場合に JEE 上の AEM Forms SDK によって呼び出される

  • Workbench 設計環境

RMI
Enterprise JavaBeans(EJB)モードで使用された場合に JEE 上の AEM Forms SDK によって呼び出される
IMAP/POP3
  • サービスに対するメールベースの入力(メールエンドポイント)

  • メールを使用したユーザータスク通知

UNC ファイル IO
サービスに対する入力用の監視フォルダーを JEE 上の AEM Forms で監視(監視フォルダーエンドポイント)
LDAP
  • ディレクトリ内の組織ユーザーとグループ情報を同期

  • 対話的にやり取りするユーザーに LDAP 認証を行う

JDBC
  • JDBC サービスを使用したプロセスの実行時に、外部データベースに対するクエリとプロシージャの呼び出しを行う

  • JEE 上の AEM Forms リポジトリへの内部からのアクセス

WebDAV
任意の WebDAV クライアントによる JEE 上の AEM Forms デザイン時リポジトリ(フォーム、フラグメントなど)のリモートブラウジングを有効にする
AMF
JEE 上の AEM Forms サーバーサービスがリモートエンドポイントとして設定されている Adobe Flash アプリケーション
JMX
JEE 上の AEM Forms は監視対象の MBeans を JMX を使用して公開

アプリケーションサーバーのポート ports-for-application-servers

ここでは、サポートしている各種のアプリケーションサーバーのデフォルトポート(および代替設定の範囲)について説明します。これらのポートについては、AEM Forms on JEE が動作しているアプリケーションサーバーに接続するクライアントに対して許可するネットワーク機能に応じて、内側のファイアウォール上で有効と無効を切り替える必要があります。

NOTE
デフォルトでは、サーバーは、adobe.com 名前空間で複数の JMX MBeans を公開します。サーバーの正常性監視に有用な情報だけが公開されます。ただし、情報開示を防ぐには、信頼できないネットワーク内の呼び出し元から JMX MBeans がルックアップされたり正常性指標にアクセスされたりしないようにしてください。

JBoss ポート

目的
ポート
Web アプリケーションへのアクセス

[JBOSS_Root]/standalone/configuration/lc_[database].xml

HTTP/1.1 コネクタポート 8080

AJP 1.3 コネクタポート 8009

SSL/TLS コネクタポート 8443

CORBA のサポート

[JBoss root]/server/all/conf/jacorb.properties

OAPort 3528

OASSLPort 3529

WebLogic ポート

用途
ポート
Web アプリケーションへのアクセス
  • 管理サーバーリッスンポート:デフォルトは 7001

  • 管理サーバー SSL リッスンポート:デフォルトは 7002

  • 管理対象サーバー用に構成されたポート(例: 8001)

AEM Forms on JEE へのアクセスに必要ない WebLogic 管理ポート
  • 管理対象サーバーリッスンポート:1~65534 の範囲で設定可能

  • 管理対象サーバー SSL リッスンポート:1~65534 の範囲で設定可能

  • ノードマネージャーリッスンポート:デフォルトは 5556

WebSphere ポート

JEE 上の AEM Forms で必要な WebSphere ポートについて詳しくは、「WebSphere Application Server UI のポート番号設定」を参照してください。

SSL の設定 configuring-ssl

「 」の節で説明する物理アーキテクチャの参照 JEE 上のAEM Formsの物理アーキテクチャを使用する場合は、使用するすべての接続に対して SSL を設定する必要があります。 特に すべての SOAP 接続は、ネットワーク上にユーザー資格情報が漏洩されないように、すべて SSL 経由で行う必要があります。

JBoss、WebLogic および WebSphere 上で SSL を設定する手順については、管理ヘルプの「SSL の設定」を参照してください。

AEM Forms サーバー用に設定された JVM(Java 仮想マシン)に証明書を読み込む手順については、AEM Forms Workbench ヘルプの「相互認証」の節を参照してください。

SSL リダイレクトの設定 configuring-ssl-redirect

SSL をサポートするようにアプリケーションサーバーを設定したら、アプリケーションやサービスに対するすべての HTTP トラフィックに SSL ポートが強制的に使用されることを確認する必要があります。

WebSphere または WebLogic で SSL リダイレクトを設定するには、使用しているアプリケーションサーバーのドキュメントを参照してください。

  1. コマンドプロンプトを開き、/JBOSS_HOME/standalone/configuration ディレクトリに移動して、次のコマンドを実行してください。

    keytool -genkey -alias jboss7 -keyalg RSA -keystore server.keystore -validity 10950

  2. JBOSS_HOME/standalone/configuration/standalone.xml ファイルを編集用に開きます。

    <subsystem xmlns="urn:jboss:domain:web:1.1" native="false" default-virtual-server="default-host"> 要素の後に、次の詳細を追加します。

    <connector name="https" protocol="HTTP/1.1" scheme="https" socket-binding="https" enabled="true" secure="true"/>

  3. https コネクタ要素に次のコードを追加します。

    code language-xml
    <connector name="https" protocol="HTTP/1.1" scheme="https" socket-binding="https" secure="true" enabled="true">
     <ssl name="jboss7_ssl" key-alias="jboss71" password="Tibco321" certificate-key-file="../standalone/configuration/server.keystore" protocol="TLSv1"/>
     </connector>
    

    standalone.xml ファイルを保存して閉じます。

Windows 固有のセキュリティに関するレコメンデーション windows-specific-security-recommendations

ここでは、AEM Forms on JEE の実行に使用する場合の Windows 固有のセキュリティレコメンデーションについて説明します。

JBoss サービスアカウント jboss-service-accounts

AEM Forms on JEE の自動インストールでは、デフォルトでローカルシステムアカウントを使用してサービスアカウントをセットアップします。組み込みのローカルシステムユーザーアカウントは、高いレベルのアクセス権限を付与されており、Administrators グループに属しています。ワーカープロセス ID がローカルシステムユーザーアカウントとして動作する場合、そのワーカープロセスはシステム全体に対する完全なアクセスが可能になります。

管理者以外のアカウントを使用したアプリケーションサーバーの実行 run-the-application-server-using-a-non-administrative-account

  1. Microsoft管理コンソール (MMC) で、Forms Server サービスにログインするためのローカルユーザーを作成します。

    • ユーザーはパスワードを変更できない」を選択します。
    • 所属するグループ ​タブに、「ユーザー」グループが表示されていることを確認してください。
  2. 設定管理ツールサービス ​を選択します。

  3. アプリケーションサーバーサービスをダブルクリックし、サービスを停止します。

  4. ログオン」タブで「このアカウント」を選択し、作成したユーザーアカウントを参照して、アカウントのパスワードを入力します。

  5. ローカルセキュリティ設定ウィンドウの「ユーザー権限の割り当て」で、Forms Server を実行しているユーザーアカウントに次の権限を付与します。

    • ターミナルサービス経由のログオンを拒否
    • locallyxx でのログオンを拒否する
    • サービスとしてログオン(通常は既に設定済み)
  6. 次のディレクトリの新しいユーザーアカウントに変更権限を付与します。

    • グローバルドキュメントストレージ (GDS) ディレクトリ:GDS ディレクトリの場所は、AEM Forms のインストールプロセス中に手動で設定します。インストール時に場所を指定しないと、[JBoss root]/server/[type]/svcnative/DocumentStorage にあるアプリケーションサーバーのインストールディレクトリの下にあるディレクトリがデフォルトの場所になります。

    • CRX リポジトリディレクトリ:デフォルトの場所は [AEM-Forms-installation-location]\crx-repository です。

    • AEM Forms 一時ディレクトリ

      • (Windows)環境変数で設定されている TMP または TEMP パス
      • (AIX、Linux、Solaris)ログインユーザーのホームディレクトリ
        UNIX ベースのシステムでは、root 以外のユーザーは次のディレクトリを一時ディレクトリとして使用できます。
      • (Linux)/var/tmp または /usr/tmp
      • (AIX)/tmp または /usr/tmp
      • (Solaris)/var/tmp または /usr/tmp
  7. 新しいユーザーアカウントに、次のディレクトリへの書き込み権限を付与します。

    • [JBoss ディレクトリ]\standalone\deployment
    • [JBoss ディレクトリ]\standalone\
    • [JBoss ディレクトリ]\bin\
    note note
    NOTE
    JBoss Application サーバーのデフォルトのインストール場所:
    • Windows:C:\Adobe\Adobe_Experience_Manager_Forms\jboss
    • Linux:/opt/jboss/。
  8. アプリケーションサーバーサービスを起動します。

ファイルシステムのセキュリティ file-system-security

AEM Forms on JEE でのファイルシステムの使用方法は次のとおりです。

  • ドキュメントの入力と出力を処理する際に使用する一時ファイルを格納する
  • インストールしたソリューションコンポーネントのサポートに使用されるファイルをグローバルアーカイブストアに格納する
  • サービスへの入力として使用されるファイルをファイルシステムフォルダーの場所から監視フォルダーにドロップして格納する

Forms Server サービスでドキュメントを送受信する方法として監視フォルダーを使用する場合は、ファイルシステムのセキュリティに関して、さらに注意を払ってください。 ユーザーが監視フォルダーにコンテンツをドロップした場合、そのコンテンツは監視フォルダーを通じて公開されます。この場合、サービスは実際のエンドユーザーの認証を行いません。代わりに、フォルダーレベルで設定される ACL と共有レベルセキュリティに基づいて、サービスを実質的に呼び出すことができるユーザーを決定します。

JBoss 固有のセキュリティに関するレコメンデーション jboss-specific-security-recommendations

ここでは、JEE 上の AEM Forms を実行する際に使用される JBoss 7.0.6 に特有のアプリケーションサーバー設定のレコメンデーションについて説明します。

JBoss 管理コンソールおよび JMX コンソールの無効化 disable-jboss-management-console-and-jmx-console

JBoss 管理コンソールと JMX コンソールへのアクセスは、自動インストール方法を使用して JBoss に AEM Forms on JEE をインストールしたときに既に設定されています(JMX 監視は無効になっています)。独自の JBoss Application Server を使用している場合は、JBoss 管理コンソールおよび JMX 監視コンソールへのアクセスが保護されていることを確認してください。JMX 監視コンソールへのアクセスは、jmx-invoker-service.xml という JBoss 設定ファイルで設定されています。

ディレクトリ参照の無効化 disable-directory-browsing

管理コンソールにログインした後、URL を変更することにより、コンソールのディレクトリ一覧を参照することができます。例えば、URL を次のいずれかの URL に変更すると、ディレクトリ一覧が表示される場合があります。

https://<servername>:8080/adminui/secured/
https://<servername>:8080/um/

WebLogic 固有のセキュリティに関するレコメンデーション weblogic-specific-security-recommendations

ここでは、AEM Forms on JEE の実行時に WebLogic 9.1 を保護するためのアプリケーションサーバー設定のレコメンデーションについて説明します。

ディレクトリ参照の無効化 disable_directory_browsing-1

weblogic.xml ファイルの index-directories プロパティを false に設定します。次に例を示します。

<container-descriptor>
    <index-directory-enabled>false
    </index-directory-enabled>
</container-descriptor>

WebLogic SSL ポートの有効化 enable-weblogic-ssl-port

デフォルトでは、WebLogic はデフォルト SSL リッスンポート 7002 を有効にしません。SSL を設定する前に、WebLogic Server 管理コンソールでこのポートを有効にしてください。

WebSphere 固有のセキュリティに関するレコメンデーション websphere-specific-security-recommendations

ここでは、AEM Forms on JEE の実行時に WebSphere を保護するためのアプリケーションサーバー設定のレコメンデーションについて説明します。

ディレクトリ参照の無効化 disable_directory_browsing-2

ibm-web-ext.xml ファイルの directoryBrowsingEnabled プロパティを false に設定します。

WebSphere 管理セキュリティの有効化 enable-websphere-administrative-security

  1. WebSphere Administrative Console にログインします。
  2. ナビゲーションツリーで、セキュリティGlobal Security に移動します。
  3. Enable administrative security」を選択します。
  4. Enable application security」および「Use Java 2 security」の選択を解除します。
  5. OK」または「Apply」をクリックします。
  6. Messages」ボックスで、「Save directly to the master configuration」をクリックします。
recommendation-more-help
19ffd973-7af2-44d0-84b5-d547b0dffee2