Skip To Content

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

このトピックの内容

デフォルトでは、ArcGIS Server でクロス ドメイン リクエストが許可されているため、Adobe Flash Player、Microsoft Silverlight、および Javascript クライアントは任意のドメインからサーバーのサービスを起動することができます。

Adobe Flash Player および Microsoft Silverlight 専用のドメインへのリクエストを制限する場合は、Web サーバーのルート レベルに一連のクライアント アクセス ポリシー ファイルを配置し、信頼するドメインだけがリストに掲載されるように編集できます。一連のクライアント アクセス ポリシー ファイルが Web サーバー上にまだ存在しない場合は、ArcGIS Web Adaptor のセットアップの一環としてこれらのファイルをインストールすることで簡単に入手できます。

Javascript アプリケーション専用のドメインへのリクエストを制限する場合は、特定のドメインだけを信頼するように ArcGIS Server を設定できます。この処理は、ArcGIS Server Administrator Directory を使用して実行します。

Adobe Flash Player、Microsoft Silverlight、および Javascript アプリケーションのリクエストを制限する方法については、以下の各セクションをご参照ください。

Adobe Flash Player および Microsoft Silverlight アプリケーションのリクエストを制限する

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 サーバーのルート レベルに別の一連のクライアント アクセス ポリシー ファイルを配置する必要があります。ArcGIS Web Adaptor の設定では、必要に応じてこれらのファイルを作成することができます。入手の方法に関係なく、信頼するドメインのみのリストが含まれるように、この一連のファイルを変更することができます。これにより、未知の Flash Player または Silverlight の制御が悪意のあるコマンドを Web サービスに送信する可能性を軽減することができます。

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

ArcGIS 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>

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

ArcGIS 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 を利用して直接サービスを起動する可能性があります。

Javascript アプリケーションのリクエストを制限する

デフォルトでは、すべての Javascript アプリケーションから Web サービスへのアクセスが ArcGIS Server で許可されています。Web サービスを他のドメインでホストされている特定の Javascript アプリケーションから利用できないようにする場合は、信頼するドメインだけをリストに載せるように ArcGIS Server を設定できます。これにより、不明なアプリケーションから Web サービスに悪意のあるコマンドが送られてくる可能性が低くなります。

  1. ArcGIS Server Administrator Directory を開き、サーバーへの管理者アクセス権限のあるユーザーとしてログインします。URL の形式は、http://gisserver.domain.com:6080/arcgis/admin です。
  2. [system] > [handlers] > [rest] > [servicesdirectory] の順にクリックします。
  3. [Services Directory] ページで [edit] をクリックします。
  4. [AllowedOrigins] フィールドに、Web サービスへのアクセスが許可されているコンピューターとそのドメイン名のリストをカンマ区切りで指定します (例: machine.esri.com, host.arcgis.com, gisserver.example.com)。
    注意:

    ワイルドカード文字 (*) をコンピューター名に代用することはできません。コンピューターの完全修飾ドメイン名をリストに指定する必要があります。

  5. [保存] をクリックします。