プロキシの構成
プロキシ ページは、Web サーバ上で実行されるサーバ側コードで構成されます。ブラウザは受け取ったリクエストをプロキシへ送信し、プロキシはそのリクエストを ArcGIS Server へ転送します。ArcGIS Viewer for Silverlight には 2 つのサンプル プロキシ ページが用意されており、これらを使用して、アプリケーションに必要な ArcGIS Server サービスとの通信を処理できます。
最初のプロキシ ページである BuilderProxy.ashx は、ビューア アプリケーションの構築時とテスト時に使用します。もう 1 つの Proxy.ashx プロキシ ページは運用ビューア アプリケーションを対象としており、BuilderProxy.ashx より安全性が高くなっています。BuilderProxy.zip または Proxy.zip をダウンロードしてください。
使用可能なプロキシ ページ
BuilderProxy.ashx
Application Builder およびビューア アプリケーションを構築してテストするときは、最初に BuilderProxy.ashx を使用します。これにより、同じ IIS(Internet Information Services)Web サーバのすべてのアプリケーションでトークンを共有できます。HTTP リクエストを転送する際、BuilderProxy.ashx はリファラとして Web サーバ名(http://<ホスト名>)のみを送信します。したがって Proxy.ashx より安全性が低くなります。トークンを構成するには、BuilderProxy.zip ファイルに含まれている BuilderProxy.config ファイルを変更します。
Services Directory からトークンを取得する際(http://<サーバ名>/ArcGIS/tokens/gettoken.html など)、HTTP リファラとして http://hostname を使用してください。BuilderProxy.config ファイルにトークン全体を貼り付けます(先頭または末尾の空白を削除します)。使用されるのはホスト名のみなので、Application Builder と作成したビューア アプリケーションの両方でトークンとプロキシ ページを利用できます。ただし、localhost または完全修飾ドメイン名ではなく、URL にホスト名を指定してアプリケーションにアクセスすることが条件となります。URL を設定するには、Application Builder の Web config ファイルで、AppsBaseUrl に実際のコンピュータ名を指定します。localhost は使用しません。
Proxy.ashx
運用時のビューア アプリケーションでは Proxy.ashx を使用します。Proxy.ashx はアプリケーションからサーバへ HTTP リファラを渡すので、安全性がより高くなります。トークンを使用する場合、トークンはアプリケーションによって異なるため、通常はアプリケーションごとに 1 つのプロキシ ページが必要になります。トークンを構成するには、Proxy.zip ファイルに含まれている Proxy config ファイルを修正します。トークンを取得するときは、http://<ホスト名> だけでなく、配置したアプリケーションの Viewer.xap ファイルの URL を使用してください(http://<ホスト名>/Apps/MyApplication/Viewer.xap など)。その後、Proxy.config ファイルにトークン全体を貼り付けます(先頭または末尾の空白を削除します)。
プロキシ ページのダウンロードと構成
ここでは、プロキシ ページをダウンロードして Web サーバにインストールする手順を説明します。プロキシ ページは、Esri サーバや ArcGIS Server コンピュータではなく、ローカル Web サーバ上で実行されます(Web サーバが ArcGIS Server インスタンスもホストする場合を除く)。
最初に、ASP.NET 2.0 以上がインストールされ、IIS に登録されていることを確認してください。ASP.NET が IIS で構成されていない場合は、MSDN の「ASP.NET と IIS の構成」MSDN ヘルプ トピックを参照し、実行している IIS バージョンの説明に従ってください。
- BuilderProxy.zip または Proxy.zip をダウンロードして圧縮解除し、Web サーバのルート ディレクトリのフォルダに保存します。IIS では、Web サーバのルート ディレクトリのデフォルトの場所は c:\inetpub\wwwroot です。このプロキシを複数のサイトで使用する場合は、Web ルート ディレクトリに proxy フォルダを作成し、このフォルダ内にコンテンツを配置します。
- IIS マネージャを開きます。IIS マネージャを開く方法は、使用している IIS のバージョンによって異なります。詳しくは、「サポート技術情報(Microsoft Knowledge Base)」の記事をご参照ください。
- proxy フォルダの Web アプリケーションを作成します。作成方法は、使用している IIS のバージョンによって異なります。
- IIS 5 またはIIS 6 では次の手順に従います。
- [既定の Web サイト] で、proxy ディレクトリを右クリックして [プロパティ] をクリックします。
- [ホーム ディレクトリ] タブの [アプリケーションの設定] セクションで、[作成] ボタンをクリックして [OK] をクリックします。
- IIS 7 では次の手順に従います。詳細については、「Web サイトの作成(IIS 7)」をご参照ください。
- [既定の Web サイト] で Proxy ディレクトリを右クリックし、[アプリケーションの追加] をクリックします。
- [アプリケーションの追加] ダイアログ ボックスで [エイリアス] と [物理パス] を指定し、[OK] をクリックします。
- トークンベースの認証を使用しているサービスでプロキシ ページを使用する場合は、そのサービスのトークンを取得します。トークンを必要とする複数の ArcGIS Server システムをアプリケーションで使用する場合は、サーバごとにそれぞれトークンを取得します。トークンの取得の詳細については、ArcGIS for Silverlight ドキュメントの「セキュリティで保護されたサービス」をご参照ください。URL で HTTP Referrer パラメータを指定する方法については、前述のセクションをご参照ください。
- proxy.config(プロキシ ページ構成)をテキスト エディタまたは XML エディタで開きます。
- このプロキシ ページを使用する各 ArcGIS Server について、XML 構成ファイルの <serverUrls> セクションに <serverUrl> エントリを追加します。追加例はプロキシ構成ファイルをご参照ください。serverUrl エレメントには次の属性があります。
- URL - ArcGIS Server コンピュータまたはサービスの URL。同じサーバの複数のサービスをアプリケーションで使用する場合、URL には サービスのルートを指定します。サーバ上の 1 つのサービスのみを使用する場合は、そのサービスの完全な URL を指定します。
- matchAll - この URL が指定されたすべてのリクエストで同じトークンを使用するかどうかを指定します。この属性が true で、URL 属性をサービスのルートに設定した場合、アプリケーションの複数のサービスで同じエントリが使用されます。
- token - 手順 1 で取得した認証トークン。省略可能(トークンベースの認証で保護されたサービスでのみ使用します)。
同じサーバ上の複数のサービスをアプリケーションで使用する場合、URL にはサービスのルート(http://www.example.com/arcgis/rest/services など)を指定し、matchAll パラメータを true に設定します。アプリケーションで 2 台以上の ArcGIS Server コンピュータを使用する場合は、複数のサーバ エントリを追加できます。
親エレメントの mustMatch 属性は、指定したサイトにのみプロキシを適用するかどうかを制御します。通常はこの属性を true に設定します。false に設定した場合、プロキシ ページからサーバへすべてのリクエストが転送されるので、権限が与えられていなくても、プロキシ ページを介してサードパーティのサーバへリクエストを送信できるようになります。
- 構成ファイルを保存します。プロキシ ページの URL を書き留めておいてください。セキュリティで保護されたマップ サービスを ArcGIS Viewer for Silverlight へ追加するときに必要となります。