プロキシの構成
ArcGIS Viewer for Silverlight では、プロキシ ページを使用して、セキュアなサービスにアクセスする際のユーザの認証情報を保存できます。プロキシ ページは、Web サーバ上で実行されるサーバ側コードで構成されます。ブラウザは受け取ったリクエストをプロキシへ送信し、プロキシはそのリクエストを ArcGIS Server サービスへ転送します。これによりセキュアなサービスにアクセスできるようになります。プロキシ ページは、長期間有効なトークンを保存したり、起動時にトークンを生成するための認証情報を保存したりします。ユーザの認証情報やトークンは、サーバ側のプロキシ ページでセキュアな状態のまま保持されるため、クライアント側からは閲覧できません。詳細については、ArcGIS API for Silverlightの「セキュアなサービス」トピックをご参照ください。
ArcGIS Viewer for Silverlight には、サンプル プロキシ ページ が用意されており、これらを使用して、アプリケーションに必要な ArcGIS Server サービスとの通信を処理できます。トークンを使用する場合、トークンはアプリケーションによって異なるため、通常はアプリケーションごとに 1 つのプロキシ ページが必要になります。
詳細については、このトピックの以下のセクションをご参照ください。
プロキシ ページのダウンロードおよびインストール
ここでは、プロキシ ページをダウンロードして Web サーバにインストールする手順を説明します。プロキシ ページは、Esri サーバや ArcGIS Server コンピュータではなく、ローカル Web サーバ上で実行されます(Web サーバが ArcGIS Server インスタンスもホストする場合を除く)。
トークンベースの認証を使用しているサービスでプロキシ ページを使用する場合は、そのサービスのトークンを取得します。トークンを必要とする複数の ArcGIS Server システムをアプリケーションで使用する場合は、サーバごとにそれぞれトークンを取得します。
最初に、ASP.NET 2.0 以上がインストールされ、IIS に登録されていることを確認してください。ASP.NET が IIS で構成されていない場合は、MSDN の「ASP.NET と IIS の構成」MSDN ヘルプ トピックを参照し、実行している IIS バージョンの説明に従ってください。
- サンプル プロキシ ページをダウンロードして圧縮解除し、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] をクリックします。
トークンの取得
トークン サービス Web ページを使用してトークンを作成したり、トークンをプログラムで生成することができます。リファラまたは IP アドレスからクライアント ID がわかる場合は、トークン サービス Web ページを使用して長期間有効なトークンを生成します。プログラムで取得すると、通常、短期間有効なトークンを起動時に生成するため、トークンが改ざんされる可能性を削減することができます。トークン サービス Web ページを使用してトークンを作成するには、以下のとおり実行します。
- サービスの URL を取得します。URL は、ArcGIS Server サイト管理者またはサービス ディレクトリのいずれかから取得できます。
- 取得した URL に移動します。Services Directory が表示され、ログインするよう求められる場合があります。
- サービスの情報が表示されるページの右上にある [Get Token] をクリックします。[Get Token] リンクがない場合、サービスは、セキュリティ保護されていないか、HTTP/Window 認証を使用しているかのどちらかです。
- ArcGIS トークン サービス Web ページが表示されます。URL に HTTPS が使用されていることを確認します。トークン サービスは、通常、ユーザ データの転送の暗号化を確実にするため、セキュアな接続を使用してアクセスします。ページに次の情報を入力します。
- ArcGIS Server システム管理者から提供されるユーザ名とパスワード。
- トークンを使用する Web アプリケーションに固有の ID を定義するための識別子。次の 2 つのオプションがあります。Web アプリケーション URL/HTTP リファラまたは IP アドレス。http://<ホスト名> だけでなく、配置したアプリケーションの Viewer.xap ファイルの URL を使用してください(http://<ホスト名>/Apps/MyApplication/Viewer.xap など)。長期間有効なトークンを作成する必要がある場合は、プロキシ ページで IP オプションを使います。
- 有効期限。トークンが有効な期間を定義します。権限がないユーザによってトークンが傍受された場合には、有効期限が短いほうが安全ですが、古いトークンの期限が切れる前に、新しいトークンを取得して適用する必要があります。トークンの有効期限が切れている場合、ArcGIS Server サービスは、リクエストを拒否します。
- [Generate] をクリックします。ページの下部にトークンが表示されます。この値をコピーして、プロキシ ページに使用します(次のセクションをご参照ください)。ヒント:
トークンが表示されない場合や、エラー メッセージが表示される場合は、入力した値が正しいか確認してください。
プロキシ ページの構成
- proxy.config(プロキシ ページ構成)をテキスト エディタまたは XML エディタで開きます。
- このプロキシ ページを使用する各 ArcGIS Server について、XML 構成ファイルの <serverUrls> セクションに <serverUrl> エントリを追加します。追加例はプロキシ構成ファイルをご参照ください。serverUrl エレメントには次の属性があります。
- URL - ArcGIS Server コンピュータまたはサービスの URL。同じサーバの複数のサービスをアプリケーションで使用する場合、URL には サービスのルートを指定します。サーバ上の 1 つのサービスのみを使用する場合は、そのサービスの完全な URL を指定します。
- matchAll - この URL が指定されたすべてのリクエストで同じトークンを使用するかどうかを指定します。この属性が true で、URL 属性をサービスのルートに設定した場合、アプリケーションの複数のサービスで同じエントリが使用されます。
- token - 認証トークン。オプション - トークンベースの認証でセキュリティ保護されたサービスだけに使用されます。
同じサーバ上の複数のサービスをアプリケーションで使用する場合、URL にはサービスのルート(http://www.example.com/arcgis/rest/services など)を指定し、matchAll パラメータを true に設定します。アプリケーションで 2 台以上の ArcGIS Server コンピュータを使用する場合は、複数のサーバ エントリを追加できます。
親エレメントの mustMatch 属性は、指定したサイトにのみプロキシを適用するかどうかを制御します。通常はこの属性を true に設定します。false に設定した場合、プロキシ ページからサーバへすべてのリクエストが転送されるので、権限が与えられていなくても、プロキシ ページを介してサードパーティのサーバへリクエストを送信できるようになります。
- 構成ファイルを保存します。プロキシ ページの URL を書き留めておいてください。セキュリティで保護されたマップ サービスを ArcGIS Viewer for Silverlight へ追加するときに必要となります。