REST Web サービスのグローバル設定¶
Virtual DataPort が公開する REST Web サービス (https://denodo-server.acme.com:9443/server... で利用可能なサービス) には、いくつかのグローバル設定、すなわち公開するすべての Web サービスに影響する設定があります。
これらいずれかの設定を変更した後は、REST Web サービスを再デプロイして変更を適用します (Virtual DataPort を再起動する必要はありません)。REST Web サービスを再デプロイしない場合、サービスは以前の設定のまま動作し続けます。
これらのパラメータは、公開する REST Webサービスの動作を制御するものであり、RESTful Web サービス (https://denodo-server.acme.com:9443/denodo-restfulws のサービス) には影響 しません 。
これらの設定を変更するには、[Administration] メニュー > [Server configuration] をクリックし、[OTHERS] (Design Studio のみ) を展開して [REST web services] をクリックします。
OpenAPI エンドポイントの有効化と無効化¶
デフォルトでは、Virtual DataPort の REST Web サービスには、Web サービスの操作、その入力パラメータ、出力のスキーマ、使用可能なメディアタイプ (JSON、XML) などについて説明する OpenAPI ドキュメントが含まれています (詳細については、「 OpenAPI/Swagger 」を参照)。
[OpenAPI/Swagger endpoints] をオフに切り替えると (Administration Tool でチェックボックスのチェックをはずす)、REST サービスは OpenAPI ドキュメントを公開しません。
リバースプロキシ経由での REST Web サービスへのアクセス¶
リバースプロキシは、Web サーバー (この場合は Denodo Platform の Web サービス) の前に位置し、クライアントのリクエストをそれらの Web サーバーに転送するサーバーです。リバースプロキシは通常、組織外部のアプリケーションから Denodo サーバーのコンピュータ/ロードバランサーの実際のホスト名が見えないようにすることでセキュリティを強化するために実装されます。
クライアントアプリケーションがリバースプロキシ経由で REST Web サービスに接続する場合は、[Custom host name and ports] を選択し、[Host name] に入力して、リバースプロキシ用のその他の設定に値を指定する必要があるかどうかをネットワーク管理者に確認します。
Host name: リバースプロキシのホスト名を入力します。これは、アプリケーションやユーザーが Denodo REST Web サービスへの接続で使用するホスト名です。
リバースプロキシが HTTPS 接続をデフォルトのポート HTTPS (443) でリッスンする場合、[Port for HTTPS connections] に 443 を入力します。値を入力しない場合、応答には Denodo Web コンテナーの HTTPS ポート (9443) が含まれます。
リバースプロキシが HTTP 接続をデフォルトのポート HTTP (80) でリッスンする場合、[Port for HTTP connections] に 80 を入力します。値を入力しない場合、応答には Denodo Web コンテナーの HTTP ポート (9090) が含まれます。
リバースプロキシでパスも定義している場合 (つまり、クライアントアプリケーションが URL にパスを追加する必要がある場合)、[Path] にそのパスを入力します。
デフォルトでは、REST Web サービスのベース URL は、以下のようになっています。
https://denodo-server.acme.com:9443/server/<database of the web service>/<name of the web service>
以下に例を示します。
https://denodo-server.acme.com:9443/server/customer_db/customer360
すべての REST Web サービスのベース URL が「/web_services/info/」になるようにリバースプロキシが構成されている場合、この値を [Path] に入力します。
この後、サービスの応答では、URL (ある場合) は以下のようになります。
https://reverse-proxy.acme.com:9443/web_services/info/customer_db/customer360
ベース URL では、セグメント「/server」が [Path] の値で置き換えられることに注意してください。
これらの設定により、Web サービスが着信接続をリッスンするホスト、ポート、または URL パスが変更されることはありません。これらの設定は、応答の URL のみを変更します。つまり、これらのオプションを有効にすると、これら 2 つの URL でサービスを利用できるようになります。
https://reverse-proxy.acme.com:9443/web_services/info/customer_db/customer360
https://denodo-server.acme.com:9443/server/customer_db/customer360
唯一の違いは、応答に URL が含まれる場合、その URL はリバースプロキシ設定を使用することです。たとえば、「リバースプロキシ」設定が無効な場合、Web サービスの HTML 出力を取得すると、以下のようになります。
<script type="text/javascript" src="/server/admin/staff_list/js/rest_web_service.js">
[Path] に「/web_services/info/」を設定すると、このエレメントは以下のようになります。
<script type="text/javascript" src="/web_services/info/admin/staff_list/js/rest_web_service.js">
「src」の違いに注意してください。
重要
リバースプロキシ設定を変更した後、REST Web サービスを再デプロイして、変更を適用します。
Design Studio では、[Web services container] パネルおよび各 REST Web サービスのサマリには、デプロイされている各 REST Web サービスを開くためのリンクがあります。これらのリンクの URL には、サービスがデプロイされている Virtual DataPort サーバーのホスト名/ポートが含まれます。代わりに「リバースプロキシ」機能を有効にすると、これらのリンクはリバースプロキシのホスト名/ポート/セグメントを参照するようになります。Administration Tool では、リバースプロキシ設定に関係なく、常にこれらのリンクは Virtual DataPort のホスト名/ポートを参照します。
HTTP ヘッダー「Content-type」の変更¶
REST Web サービスの応答には、ヘッダー「Content-type」があります。デフォルトでは、このヘッダーにはパラメータ「subtype」 ( Content-Type: application/json;subtype=denodo-9;charset=UTF-8
) があります。このヘッダーから、「subtype」の値の変更や削除を行うことができます。
[No parameters] を選択した場合、このヘッダーにはパラメータ「subtype」はありませんが、ヘッダー「Content-Type」を返します。
HTTP ヘッダー「WWW-Authenticate」の変更¶
REST Web サービスは、ユーザーやアプリケーションが最初にログインしようとするときに、HTTP ヘッダー「WWW-Authenticate」を返します。このヘッダーには、Denodo という名前のパラメータ「realm」が含まれます。このパラメータの値は変更できます。
Denodo Platform による REST Web サービス公開の難読化¶
上記のオプションの一部を使用して、Denodo Platform によるサービスの公開を難読化できます。
OpenAPI エンドポイントを無効にします。REST Web サービスの OpenAPI ドキュメントには、Denodo のユーザーマニュアルへの参照があります。
「denodo」という単語を使用しないように、XML 表現のデフォルトの名前空間を変更します。
デフォルトの名前空間プレフィックスを「tns」に変更します。
ヘッダー「Content-type」と「WWW-Authenticate」の値を変更します。
公開するすべての REST Web サービスで、HTML 表現を無効にします。HTML 表現では、デフォルトで Denodo のロゴが表示され、 これを変更する場合 にも、Denodo Platform のドキュメントへの [Help] リンクがサービスに表示されます。
こうした変更により、これらのサービスの公開元の推測がより困難になるため、セキュリティの脆弱性を悪用しようとする悪意のあるユーザーからある程度保護することができます。