一部の環境では、Esri Maps for IBM Cognos は、ArcGIS プラットフォーム (および、取得した ArcGIS アイテムが参照するすべての Web サービス) との通信を仲介する内部プロキシ機構を使用します。プロキシが必要な場合、Esri Maps for IBM Cognos は HTTP リクエストをプロキシに送信し、プロキシがそのリクエストをリモートの Web サーバー (ArcGIS など) に転送します。その後、プロキシは Esri Maps for IBM Cognos への応答を中継します。
Esri Maps for IBM Cognos が、使用するすべてのデータおよび Web サービスが同じドメイン上にある場合や、ブラウザーとすべてのサーバーが CORS (Cross-Origin Resource Sharing) をサポートしている場合は、内部プロキシは使用されません。ただし、ほとんどの運用環境では、この構成は一般的ではないため、内部プロキシを設定することをお勧めします。
CORS 対応サーバーの指定 (オプション)
ほとんどの最新のブラウザーは、推奨標準である CORS を使用しています。CORS 標準のヘッダーを HTTP 仕様に追加することによって、リソースやサービスを読み取ることが許可された生成元 (オリジン) をサーバーに示すことができます。
Esri Maps for IBM Cognos は、CORS を使用するサーバーを自動的に検出し、これらのサーバーと通信します。ただし、サーバーが CORS 対応であっても、初期リクエスト (たとえば HTTP POST) が Esri Maps for IBM Cognos の内部プロキシを通じて自動的にルーティングされる場合があります。Esri Maps for IBM Cognos 管理者は、Esri Maps for IBM Cognos の構成ファイル (settings.js) に CORS 対応のサーバーの URL を設定することで、それらのサーバーが CORS 対応であると自動的に見なして、プロキシをバイパスするように設定できます。
注意:
corsEnabledServers プロパティに記載されているサーバーは、CORS をサポートするために事前に設定する必要があります。サーバーの URL をこのリストに追加する前に、サーバーが実際に CORS 対応であることを確認します。この設定で指定されたサーバーが CORS 対応でない場合、Esri Maps for IBM Cognos サーバーとの通信は失敗します。詳細については、「 Cross-Origin Resource Sharing の有効化」をご参照ください。
CORS 対応サーバーを指定するには、次の手順を実行します。
- 標準的なテキスト エディターを使用して、アプリケーションの構成ファイルを開きます。
構成ファイルは、EM4C ゲートウェイの次の場所にあります。<em4c_location>\webcontent\esrimap\configuration\settings.js
- corsEnabledServers プロパティで、CORS 対応であると自動的に見なすサーバーの URL を指定します。
それぞれの URL は引用符で囲み、複数の URL はカンマで区切ります。
次に例を示します。corsEnabledServers: ["mapserver.mycompany.com", "otherserver.othercompany.com"]
注意:
Web 層認証を使用する Portal for ArcGIS のインスタンスをこのリストに含めることはできません。ただし、そのようなインスタンスでは、プロキシが関与しなくても CORS が常に自動的に検出されます。
- 編集した settings.js ファイルを保存して閉じます。
内部プロキシの構成
内部プロキシは、最小限のカスタム構成で動作するように設計されていますが、特定サーバーへのリクエストだけを許可するように設定をカスタマイズできます。つまり、プロキシがリクエストを転送するリソースを指定できます。
内部プロキシ設定を構成するには、標準的なテキスト エディターを使用して、プロキシ構成ファイルを変更します。
プロキシ構成ファイル (proxy.conf) は、EM4C ゲートウェイ上の <em4c_location>\temp\proxy.conf にあります。
注意:
複数のゲートウェイを使用して Esri Maps for IBM Cognos を実装する場合、各ゲートウェイでプロキシ構成ファイルを更新する必要があります。設定は、すべてのゲートウェイで同一である必要があります。
Esri Maps for IBM Cognos からのアクセスが許可される URL を定義するには、個々の URL を別々の serverUrl プロパティで指定します。Esri Maps for IBM Cognos がアクセスしてマップ サービスを取得する必要のあるすべてのサーバーについて、別々の serverUrl プロパティを作成します。
注意:
matchUrls プロパティを true に設定すると、プロキシがアクセスできるのは、明示的にリストされたサーバーのみになります。このプロパティを false に設定すると、プロキシは任意のサーバーにアクセスでき、serverUrl として設定したサーバーを無視します。
例:matchUrls = true
serverUrl = http://www.arcgis.com
serverUrl = https://arcgis.com
serverUrl = http://myserver.mycompany.com
プロキシのテスト
内部プロキシをテストするには、HTTP リクエストをそのプロキシを通じてルーティングします。プロキシが期待される値を返した場合、正しく動作していることになります。次の手順は、Esri Maps for IBM Cognos が生成する HTTP トラフィックをシミュレートする呼び出しの例を示しています。
- Esri Maps for IBM Cognos の内部プロキシの場所を確認するには、Web ブラウザーのアドレス バーに該当の URL を入力します。
http://myibmcognosserver/ibmcognos/em4c/cgi-bin/em4c.cgi
内部プロキシに正常にアクセスすると、ページにタイム スタンプが表示されます (例: Thu Oct 02 07:34:52 PDT 2014)。期待される応答を受信しなかった場合は、内部プロキシ構成の設定を確認します。
- 既知のリソースに接続できることを確認します。
たとえば、次の各 URL は、サーバー上にインストールされているソフトウェアのバージョンを記述する JSON オブジェクトを返します。
- ArcGIS Online: http://www.arcgis.com/sharing?f=pjson
- Portal for ArcGIS インスタンス: http://myPortal/gis/sharing/?f=pjson
- 内部プロキシを通じてトラフィックをルーティングします。
たとえば、次の各 URL は、サーバー上にインストールされているソフトウェアのバージョンを記述する JSON オブジェクトを返します。
- ArcGIS Online: http://ibmcognosserver/ibmcognos/em4c/cgi-bin/em4c.cgi?http://www.arcgis.com/sharing?f=pjson
- Portal for ArcGIS インスタンス: http://ibmcognosserver/ibmcognos/em4c/cgi-bin/em4c.cgi?http://myPortal/gis/sharing/?f=pjson
注意:
内部プロキシへの呼び出しをルーティングして、期待される結果が返されない場合は、上流プロキシを使用してリソースにアクセスする必要がある場合があります。この場合、上流プロキシを構成して、このセクションのテストをもう一度実行します。内部プロキシは、上流プロキシを通じてトラフィックをルーティングし、期待される結果を Web ブラウザーに返します。詳細については、「オプションの上流プロキシの構成」をご参照ください。
正しく動作した結果とは、プロキシが適切に構成され、期待通りに機能することを意味します。
オプションの上流プロキシの構成
Esri Maps for IBM Cognos が内部プロキシを使用しなければならない状況では、内部プロキシが HTTP リクエストを目的のターゲット リソース (マップ サービスなど) に転送できる必要があります。しかし、環境によっては、ファイアウォールなどにより、これらのリクエストを送信できない場合があります。たとえば、ファイアウォールの影響で内部ネットワークの外部に HTTP トラフィックを送信できない場合があります。
この問題を解決するために、上流転送プロキシを構成することができます。
上流プロキシを使用すると、内部ネットワークのセキュリティを損なわずに、ネットワーク外部に接続できるようになります。上流プロキシを使用する一般的な方法の 1 つとして、内部ネットワークを保護するために、プロキシ サーバーを境界ネットワークに配置する方法があります。
上流プロキシは、エンタープライズレベルのサードパーティの (Esri でない) ソリューションを表しています。これは、Esri Maps for IBM Cognos の一部ではありません。
注意:
Esri Maps for IBM Cognos は、認証が必要な上流プロキシ サーバーをサポートしていません。
Esri Maps for IBM Cognos のプロキシの構成ファイルには、上流プロキシを構成できるプロパティが含まれています。
上流プロキシ設定を構成するには、標準的なテキスト エディターを使用して、プロキシ構成ファイルを変更します。
- upStreamProxy プロパティを true に設定します。
- 次の表記法を使用して、upStreamProxyUrl プロパティを指定します。
http://<address>:<port>
ここで、
- address - プロキシ サーバーのアドレス。例: proxy.mycompany.com
- port - プロキシ サーバーに割り当てられたポート番号。例: 8888
例:
upStreamProxy = true upStreamProxyUrl = http://proxy.mycompany.com:8888
注意:
プロキシ サーバーの場所を指定するのに IP アドレスを使用する場合は、先頭のゼロは入力しません。たとえば、130.025.000.001 ではなく、130.25.0.1 を使用します。
プロキシ サーバーの Web アドレスまたはポート番号がわからない場合は、ネットワーク管理者にお問い合わせください。
- 上流プロキシをテストするには、内部プロキシを通じてリクエストをルーティングします。すると、上流プロキシを通じて呼び出しがルーティングされます。詳細については、「プロキシのテスト」をご参照ください。