プロキシの構成
プロキシ ページは、Web サーバ上で実行されるサーバ側コードで構成されます。ブラウザは受け取ったリクエストをプロキシへ送信し、プロキシはそのリクエストを ArcGIS Server へ転送します。ArcGIS for SharePoint には 2 つのサンプル プロキシ ページが用意されており、これらを使用して、アプリケーションに必要な ArcGIS Server サービスとの通信を処理できます。
最初のプロキシ ページである SharePointProxy.ashx は、ArcGIS for SharePoint Map Web パーツの構成時とテスト時に使用します。もう 1 つの Proxy.ashx プロキシ ページは Map Web パーツを組み込む運用 SharePoint サイトを対象としており、SharePointProxy.ashx より安全性が高くなっています。 SharePointProxy.zip または Proxy.zip をダウンロードしてください。
使用可能なプロキシ ページ
SharePointProxy.ashx
ArcGIS for SharePoint Map Web パーツを構築してテストするときは、最初に SharePointProxy.ashx を使用します。これにより、同じ IIS(Internet Information Services)Web サーバのすべてのアプリケーションでトークンを共有できます。HTTP リクエストを転送する際、SharePointProxy.ashx はリファラとして Web サーバ名(http://<ホスト名>)のみを送信します。したがって Proxy.ashx より安全性が低くなります。トークンを構成するには、SharePointProxy.zip ファイルに含まれている SharePoint.config ファイルを変更します。
Services Directory からトークンを取得する際(http://<サーバ名>/ArcGIS/tokens/gettoken.html など)、HTTP リファラとして http://hostname を使用してください。SharePoint.config ファイルにトークン全体を貼り付けます(先頭または末尾の空白を削除します)。使用されるのはホスト名のみなので、ArcGIS for SharePoint の開発用アプリケーションと運用アプリケーションの両方でトークンとプロキシ ページを利用できます。ただし、localhost または完全修飾ドメイン名ではなく、URL にホスト名を指定してアプリケーションにアクセスすることが条件となります。
Proxy.ashx
Proxy.ashx はアプリケーションからサーバへ HTTP リファラを渡すので、安全性がより高くなります。トークンを使用する場合、トークンはアプリケーションによって異なるため、通常はアプリケーションごとに 1 つのプロキシ ページが必要になります。トークンを定義する際の範囲(サイトやページなど)は、希望する認証レベルによって異なります。たとえば、サイト内のすべての Map Web パーツがセキュリティで保護された ArcGIS Server サービスを同じ方法で利用する場合は、そのサイト全体に 1 つのプロキシを定義します。サイト内の Map Web パーツがそれぞれ異なる方法でセキュリティで保護されたサービスにアクセスする場合は、ページごとに、あるいは同じ権限を使用するページ グループごとにプロキシを設定する必要があります。トークンを構成するには、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 バージョンの説明に従ってください。
- SharePointProxy.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 for SharePoint へ追加するときに必要となります。