フォワードおよび/またはリバース プロキシを使って DTP インフラストラクチャを環境にデプロイしている場合、またはオリジン間リソース共有 (CORS) のポリシーを推進している場合、ネットワークの設定を行ってください。一般的に、フォワード/リバース プロキシ サーバーは、パフォーマンスの改善のために、静的ファイルまたは頻繁にリクエストされるファイルをキャッシュするために使用されます。CORS は、ネットワーク セキュリティを向上するために、どのオリジン間リクエストを許可するかを定義します。
Extension Designer または Policy Center で、歯車のアイコン メニューから [設定] を選択し、[管理者] サイドバーから [ネットワークの設定] を選択します。
オリジン間リソース共有
[ホワイトリスト] フィールドで完全修飾ドメイン名のカンマ区切りリストを指定して、異なるドメインからの DTP Enterprise Pack へのネットワーク アクセスを手動で有効にします。
オリジン間リソース共有 (CORS) は、現代の Web ブラウザーが「同一オリジン ポリシー」を回避し、ドメイン間でリソースを共有できるようにするための仕様です。同一オリジン ポリシーはセキュリティ メカニズムです。Web サイトへのブラウザー リクエストに対して、その Web サイトに情報提供する同じドメインを通過するよう要求することで、悪意のあるコンテンツからユーザーを保護します。DTP Enterprise Pack は Parasoft エコシステムの統合ポイントとして設計されているので、CORS のホワイトリスト機能は、サードパーティと DTP Enterprise Pack との統合を許可するために公開されています。
CORS のホワイトリストを使って以下のことが可能です。
- 複数のホスト名を持つマシン上で DTP Enterprise Pack が実行中のときに、ネットワーク エイリアスを設定します。
- DTP Enterprise Pack と統合するサード パーティの Webサイト/イントラネット ページのホスト名を設定します。
- 複雑なネットワーク構成の背後に DTP Enterprise Pack がある場合に、リバース プロキシ/ロード バランサーのホスト名を設定します (「リバース プロキシ」を参照)。リバース プロキシ設定は、エンドツーエンドのリバース プロキシ サポートに使用するべきです。リバース プロキシ設定を使用する場合、ホスト名はホワイトリストに自動的に追加され、手動で設定する必要はありません。
ホワイトリストには、DTP Enterprise Pack へのオリジン間リクエストを許可するホスト名 (オリジンなし) をカンマ区切りリストとして指定します。ホスト名、完全修飾ドメイン名、または IP アドレスでなければなりません。プロトコルまたはポートを含めてはいけません。
設定が完了したら [保存] をクリックします。
フォワード プロキシ
[プロキシの有効化] オプションを有効にし、プロキシ サーバーのホスト名とポートを指定します。プロキシ サーバーが認証情報を要求する場合、ユーザー名とパスワードはプロキシ サーバーを使って認証するように設定できます。
プロキシ サーバーを有効にすると、プロキシを介してすべての HTTP(S) リクエストが送信されます。
有効な場合、すべての HTTP(S) リクエストがプロキシを介して送信されます。これには、DTP Server へのリクエスト (「サーバーの設定」を参照)、Marketplace サーバーへのリクエスト (「マーケットプレースの設定」を参照)、および http リクエスト ノードで作成される任意のリクエスト (「ノードの使用」を参照) が含まれます。- [プロキシを使用しないホスト] フィールドに、ホスト名、完全修飾ドメイン名、および/または IP アドレスのリストを指定することで、それらのホストへの全 HTTP(S) リクエストでプロキシの使用を回避できます。
- 設定が完了したら [保存] をクリックします。
リバース プロキシ
[リバース プロキシの有効化] オプションを有効にし、リバース プロキシの設定を指定して [保存] をクリックします。
リバース プロキシは、高可用性を実現したりネットワーク セキュリティを強化するために使用されることがあります。ネットワーク管理者は、リバース プロキシ サーバーを設定して、アプリケーションがホストされる場所にユーザー リクエストを転送することができます。以下の図は基本的なリバース プロキシのフローです。
リバース プロキシの設定例
リバース プロキシ サーバーによって実装方法は異なります。以下は、nginx の場合の設定例です。
server { listen 443 ssl; listen [::]:443 ssl; ssl_certificate /etc/nginx/certs/ssl-certificate-file.crt; ssl_certificate_key /etc/nginx/certs/ssl-certificate-key.key; ssl on; ssl_session_cache builtin:1000 shared:SSL:10m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4; ssl_prefer_server_ciphers on; access_log /var/log/nginx/user1-dtp.access.log; error_log /var/log/nginx/user1-dtp.error.log; location / { proxy_pass http://my-host.domain.com:8080; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Host $http_host; proxy_set_header X-Forwarded-Proto https; proxy_set_header X-Forwarded-Port $server_port; proxy_read_timeout 90; } } server { listen 8443 ssl; listen [::]:8443 ssl; ssl_certificate /etc/nginx/certs/ssl-certificate-file.crt; ssl_certificate_key /etc/nginx/certs/ssl-certificate-key.key; ssl on; ssl_session_cache builtin:1000 shared:SSL:10m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4; ssl_prefer_server_ciphers on; location / { proxy_pass http://my-host.domain.com:8314; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Host $http_host; proxy_set_header X-Forwarded-Proto https; proxy_set_header X-Forwarded-Port $server_port; proxy_read_timeout 90; # websocket proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } } server { listen 9443 ssl; listen [::]:9443 ssl; ssl_certificate /etc/nginx/certs/ssl-certificate-file.crt; ssl_certificate_key /etc/nginx/certs/ssl-certificate-key.key; ssl on; ssl_session_cache builtin:1000 shared:SSL:10m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4; ssl_prefer_server_ciphers on; location / { proxy_pass http://my-host.domain.com:8000; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Host $http_host; proxy_set_header X-Forwarded-Proto https; proxy_set_header X-Forwarded-Port $server_port; proxy_read_timeout 90; # websocket proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } }
この例では、server listen
をポート 443
、8443
、および 9443
に設定しています。これらのポートは、DTP、Extension Designer、および Policy Center にそれぞれトラフィックスをフォワードするよう proxy_pass
で設定されています。
WebSockets でのリバース プロキシのサポート
WebSockets の通信のためにリバース プロキシ サーバーを構成する方法については、以下のドキュメントを参照してください。http://nginx.org/en/docs/http/websocket.html