ArcGIS Server へのクロスドメイン リクエストの制限

デフォルトでは、ArcGIS Server はクロスドメイン リクエストを許可しているため、Adobe Flash Player および Microsoft Silverlight プラグインは任意のドメインからサーバのサービスを起動することができます。他のドメインからのリクエストを制限する場合は、Web サーバのルート レベルに一連のクライアント アクセス ポリシー ファイルを配置し、信頼するドメインのみがリストされるように編集します。一連のクライアント アクセス ポリシー ファイルが Web サーバ上にまだ存在しない場合は、ArcGIS Web Adaptor のセットアップの一環としてクライアント アクセス ポリシー ファイルをインストールすることで簡単に入手できます。

クライアント アクセス ポリシー ファイルの内容と、それらを ArcGIS Server に関連付ける方法

Adobe Flash Player および Microsoft Silverlight プラグインは、Web アプリケーションが生成されたドメインの外部にある Web サービスにはアクセスできません。唯一の例外は、アクセスされている Web サーバに、Web アプリケーションのドメインがクロスドメイン リクエストを承認するドメインとしてリストされているクライアント アクセス ポリシー ファイルが含まれている場合です。Adobe Flex を使用している場合、クライアント アクセス ポリシー ファイルは crossdomain.xml です。Microsoft Silverlight を使用している場合、このファイルは通常 clientaccesspolicy.xml です(ただし、Silverlight は crossdomain.xml にも対応しています)。

デフォルトでは、ArcGIS Server はクロスドメイン リクエストを許可しています。このため、一連のクライアント アクセス ポリシー ファイルが ArcGIS Server のインストール時に GIS サーバに配置されます。これらのファイルは削除したり、開いたり、変更したりしないでください。

Web サービスを他のドメインでホストされている Flex アプリケーションおよび Silverlight アプリケーションから利用できないようにする場合は、ArcGIS Web Adaptor をインストールし、Web サーバのルート レベルに別々のクライアント アクセス ポリシー ファイルを配置する必要があります。Web Adaptor の設定では、必要に応じてこれらのファイルを作成することができます。入手の方法に関係なく、信頼するドメインのみのリストが含まれるように、この一連のファイルを変更することができます。これにより、未知の Flash Player または Silverlight の制御が悪意のあるコマンドを Web サービスに送信する可能性を減らせます。

次に、Web Adaptor によってインストールされた crossdomain.xml ファイルを示します。このファイルを変更して、制限を強化することができます。このファイルの変更方法の詳細については、「Adobe クロスドメイン ポリシー ファイルの仕様」をご参照ください。

Web Adaptor によってインストールされた crossdomain.xml:

<?xml version="1.0" ?> 
<cross-domain-policy>
 <allow-access-from domain="*"/>
 <site-control permitted-cross-domain-policies="all"/>
 <allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>

次に、Web Adaptor によってインストールされた clientaccesspolicy.xml ファイルを示します。このファイルを変更して、制限を強化することができます。clientaccesspolicy.xml ファイルの変更方法の詳細については、「ドメイン間でサービスを利用可能にする」および「Microsoft Silverlight でのネットワーク セキュリティ アクセス制限」をご参照ください。

Web Adaptor によってインストールされた clientaccesspolicy.xml:

<?xml version="1.0" encoding="utf-8" ?> 
<access-policy>
 <cross-domain-access>
  <policy>
   <allow-from http-request-headers="*">
    <domain uri="*"/>
   </allow-from>
   <grant-to>
    <resource path="/" include-subpaths="true"/>
   </grant-to>
  </policy>
 </cross-domain-access>
</access-policy>
注意注意:

クライアント アクセス ポリシー ファイルの存在有無に関係なく、サイトがすべてのサイト間の脆弱性に対して安全なわけではありません。たとえば、クライアント アクセス ポリシー ファイルの内容に関係なく、Flash Player または Silverlight で動作していないアプリケーションまたはスクリプトが REST を利用して直接サービスを起動する可能性があります。

9/14/2013