リバース プロキシ サーバーとは、境界ネットワーク (DMZ (DeMilitarized Zone) またはスクリーン サブネットとも呼ばれる) 内に配置され、インターネットからのリクエストを処理して内部ネットワーク内のコンピューターに転送するコンピューターです。リバース プロキシ サーバーの代理としてリクエストの転送が実施されると、組織サイトのファイアウォールの内側にあるコンピューターのアイデンティティがマスクされるため、インターネット ユーザーによる直接的な攻撃から内部のコンピューターを保護できます。さらに進んでユーザーの内部ネットワークを外部ユーザーから保護するために、追加のセキュリティ機能をリバース プロキシ サーバーに実装できます。
リバース プロキシ サーバーが状態チェック機能に対応している場合は、Portal for ArcGIS の状態チェック エンド ポイントを使用して、ポータルがリクエストを受け取れるかどうかを確認できます。これは、サイトでソフトウェアまたはハードウェアの障害があるかどうかを迅速に確認する場合に便利です。詳細については、ArcGIS REST API のポータルの「Health Check」トピックをご参照ください。
注意:
このトピックで説明する構成は、ArcGIS Server サイトを ArcGIS Enterprise ポータルとフェデレートする前に実行する必要があります。ArcGIS Server サイトのフェデレーションの解除は、いくつかの大きな影響をもたらします。また、これを簡単に元に戻すことはできません。詳細については、「フェデレーション サーバーの管理」をご参照ください。
リバース プロキシ サーバーへの Portal for ArcGIS の追加
組織のリバース プロキシ サーバーに Portal for ArcGIS を追加する前に、次の操作を完了する必要があります。
- リバース プロキシ サーバーに HTTPS (HTTP および HTTPS、または HTTPS のみ) を構成します。Portal for ArcGIS は、通信にデフォルトで HTTPS を使用します。プロキシ サーバーの製品マニュアルで、HTTPS の設定方法を確認してください。
- ポータルで統合 Windows 認証を使用する場合、ArcGIS Web Adaptor をポータルに構成します。このため、Portal for ArcGIS では ArcGIS Web Adaptor を使用する必要があります。これを使用することにより、リバース プロキシ サーバーがポータルと正常に通信できるようになります。詳細な手順については、Java (Linux) の構成に関するトピックをご参照ください。
プロキシ サーバーが gzip エンコーディングをサポートしていることと、Accept-Encoding ヘッダーを許可するように構成されていることを確認します。このヘッダーによって、gzip エンコーディングを使用して HTTP 1.1 の応答を圧縮できるようになります。たとえば、このヘッダーが許可されている場合、Map Viewerを読み込むリクエストは、約 1.4 MB の圧縮された応答をブラウザーに返します。このヘッダーが許可されていない場合や無視されている場合、リクエストは約 6.8 MB の圧縮されていない応答をブラウザーに返します。ネットワーク速度が遅い場合、応答が圧縮されていないとMap Viewerを読み込むのに時間がかかる可能性があります。リバース プロキシ サーバー構成の一部として、このヘッダーを許可することを強くお勧めします。
プロキシ サーバー ディレクティブへの ArcGIS Web Adaptor の追加
ArcGIS Web Adaptor を Portal for ArcGIS で構成した後、ArcGIS Web Adaptor を組織サイトのリバース プロキシ サーバーで使用するには、これらのコンポーネントをプロキシ サーバー ディレクティブに直接追加します。たとえば、リバース プロキシ サーバーとして Apache を使用している場合は、Apache Web サーバー構成ファイルの httpd.conf で、ProxyPass ディレクティブに ArcGIS Web Adaptor を追加する必要があります。
ProxyPass /arcgis https://webadaptorhost.domain.com/webadaptorname
ProxyPassReverse /arcgis https://webadaptorhost.domain.com/webadaptorname
ProxyPass ディレクティブは ArcGIS Web Adaptor に対して指定された名前と一致する必要があります (上の例では /webadaptorname)。サイトの URL の末尾がデフォルト文字列 /arcgis でない場合は、ArcGIS Web Adaptor のデフォルト以外の名前を指定します (たとえば /myorg)。
プロキシへの X-Forwarded-Host ヘッダーの追加
リバース プロキシ サーバーの負荷構成で、X-Forwarded-Host ヘッダーを設定します。Portal for ArcGIS は、リバース プロキシから送信されるヘッダー内に設定されているこのプロパティを確認して、リバース プロキシ サーバーの URL に一致するリクエストを返します。たとえば、Portal for ArcGIS の REST エンドポイント (https://reverseproxy.domain.com/arcgis/sharing/rest) に対するリクエストは、同じ URL としてクライアントに返されます。このプロパティが設定されていない場合、Portal for ArcGIS は、リクエストが転送された内部コンピューターの URL を返すことがあります (たとえば、https://portal.domain.com/arcgis/sharing/rest ではなく https://reverseproxy.domain.com/arcgis/sharing/rest)。このような場合は、クライアントがこの URL にアクセスできなくなる (一般的に、ブラウザーの 404 エラーとして知られている) ため、問題が起こりがちになります。また、これによって、内部コンピューターについての一部の情報へのアクセス権限がクライアントに付与されます。
WebContextURL プロパティの設定
ポータルは、WebContextURL プロパティにより、すべてのリソースで正しい URL を構築して、エンド ユーザーに送信することができます。
備考:
配置内で ArcGIS Web Adaptor を使用していない場合、リバース プロキシ サーバーのコンテキスト名は 1 階層だけ下の URL レベルであることを確認してください。たとえば、https://proxy.domain.com/enterprise などのリバース プロキシの URL は使用できますが、https://proxy.domain.com/myorg/enterprise などのリバース プロキシの URL は使用できません。
- Web ブラウザーを開き、ポータル組織のデフォルトの管理者ロールのメンバーとして、ArcGIS Portal Directory にサイン インします。URL の形式は、https://portal.domain.com:7443/arcgis/portaladmin です。
- [System] > [Properties] > [Update Properties] の順にクリックします。
- [Update System Properties] ダイアログ ボックスに次の JSON を挿入し、ユーザーが組織のファイアウォールの外部から参照する際に使用する独自のリバース プロキシ サーバーまたは DNS エイリアス URL に置き換えてください。
{ "WebContextURL": "https://reverseproxy.domain.com/enterprise" }
備考:
Portal for ArcGIS がサポートする DNS は 1 つだけです。
備考:
WebContextURL プロパティを設定するときに、標準でないポート (7443 以外のポート) は使用できません。
- [Update Properties] をクリックします。
管理タスクのやり直し
ポータルでリバース プロキシ サーバーの構成が完了した後は、ArcGIS Web Adaptor の URL の代わりに、リバース プロキシ サーバーの URL を介してポータルにアクセスします。ポータル Web サイトまたは ArcGIS Portal Directory にアクセスした場合、必ずリバース プロキシ サーバーの URL が返されます。
リバース プロキシ サーバーの URL を使用し、次の管理タスクをやり直す必要があります。
以前に、セキュリティで保護されたサービスをアイテムとしてポータルに追加している場合、元のアイテムを削除して、それらを再び追加する必要があります。これは、元のアイテムが、リバース プロキシ サーバーの URL ではなく ArcGIS Web Adaptor の URL を使用しているためです。手順については、「セキュリティで保護されたサービスへの接続」をご参照ください。