構成¶
OData サービスの構成は、 <DENODO_HOME>/resources/apache-tomcat/webapps/denodo-odata4-service/WEB-INF/classes/configuration.properties ファイルにあります。
このファイルでは、以下のプロパティを変更できます。
odataserver.address: サービス名。たとえば、これを/odata-interface.svcに変更すると、サービスにアクセスするための URL はhttp://localhost:9443/denodo-odata4-service/odata-interface.svc/<database name>/になります。odataserver.serviceRoot(オプション): サービスのルート URI。ゲートウェイを通じてサービスにアクセスする場合は、OData 応答に記述されるリンクでこの URI がルートとして使用されるように、このプロパティの値を設定します。たとえば、このプロパティの値をhttps://gw.denodo.com:9000/ODATA/とすると、http://server001:9090/denodo-odata4-service/denodo-odata.svc/moviesに対するリクエストに対して、URLhttps://gw.denodo.com:9000/ODATA/denodo-odata.svc/moviesが記述された応答が返されます。server.pageSize: リクエストあたりで返されるレコード数。詳細については、「 改ページ 」を参照してください。enable.adminUser:falseの場合、ユーザーアカウントadmin(他の管理者アカウントは除きます) からこのサービスにアクセスできません。この機能は、Basic 認証でのみ使用でき、Kerberos 認証や OAuth では使用できません。debug.enabled:trueの場合、クエリパラメータ?odata-debug=jsonを使用したリクエストに対する応答には、目的のデータのほか、デバッグ情報が追加されます。disable.basicAuthentication: このサービスで HTTP の Basic 認証を無効にするにはtrueに設定します。有効にするにはfalseに設定します。disable.kerberosAuthentication: このサービスで Kerberos 認証を無効にするにはtrueに設定します。有効にするにはfalseに設定します。enable.streaming: エンティティコレクションストリーミング をサポートする場合はtrueに設定し、無効にする場合はfalseに設定します。デフォルト値はtrueです。timestampTimezone: 日時の値の書式を設定するタイムゾーン。例:America/New_York(このパラメータに指定できる値については、 このリスト を参照してください)。値がない場合、サービスではUTCを使用します。
このサービスで Kerberos 認証を有効にするには、まず Denodo サーバーで Kerberos 認証を有効にする必要があります。その手順については「 Kerberos 認証 」を参照してください。
disable.oauth2Authentication: このサービスで OAuth 2.0 認証を無効にするにはtrueに設定します。このサービスで OAuth 認証を有効にするには、まず Denodo サーバーで OAuth 認証を有効にする必要があります。その手順については「 OAuth 認証 」を参照してください。
forceSpecNullOrdering: 一部の RDMBS (Oracle など) では、null値の順序付けは、OData 仕様で定義されている方法と逆の方法で行われます。つまり、null値はASCの配列では最初に配置し、DESCの配列では最後に配置する必要があります。このプロパティをtrueに設定すると、配列は強制的に OData 仕様に準拠します。
このサービスの認証メカニズムを有効または無効にする場合、少なくとも 1 つの認証メカニズムを有効にした状態を維持する必要があります。
このファイルの変更を有効にするには、Virtual DataPort サーバーを再起動します。
OData サービスでの Kerberos 認証の有効化¶
OData サービスは、Kerberos プロトコルを使用したシングルサインオンをサポートしています。このサポートを有効にするには以下の手順に従います。
『インストールガイド』の「 Kerberos 認証の設定 」で説明されているインストール後のタスクを実行します。
管理ガイドの「 Virtual DataPort サーバーでの Kerberos 認証の設定 」の説明に従って、Virtual DataPort サーバーで Kerberos を有効にします。
<DENODO_HOME>/resources/apache-tomcat/webapps/denodo-odata4-service/WEB-INF/classes/configuration.propertiesファイルでdisable.kerberosAuthenticationプロパティをfalseに設定します。
重要
Denodo OData 4.0 サービスにアクセスするには、Virtual DataPort サーバーで構成したサーバープリンシパル名の完全修飾ドメイン名を使用します。たとえば、サーバープリンシパル名が HTTP/denodo-prod.subnet1.contoso.com@CONTOSO.COM である場合、 http://denodo-prod.subnet1.contoso.com:9090/denodo-odata4-service/denodo-odata.svc または https://denodo-prod.subnet1.contoso.com:9443/denodo-odata4-service/denodo-odata.svc の URL で Denodo OData 4.0 サービスにアクセスする必要があります。
オリジン間リソース共有 (CORS) の有効化¶
このサービスは、オリジン間リソース共有 (CORS) をサポートしています。CORS の詳細については、「 オリジン間リソース共有 (CORS) 」 (公開されている REST Web サービスの設定) を参照してください。
OData サービスで CORS サポートを有効にするには以下の手順に従います。
「 CORS の初期設定 」の手順に従って設定を行います (CORS が有効な状態で Denodo REST Web サービスを公開している場合は、実施済みです)。
この Denodo インストール環境のサーバーを起動する前に、
<DENODO_HOME>/resources/apache-tomcat/webapps/denodo-odata4-service/WEB-INF/web.xmlファイルを編集し、次の記述をファイルの 先頭に 追加します。<!DOCTYPE doc [ <!ENTITY cors_settings SYSTEM "cors_settings.xml"> ]>
ファイルは以下のようになります。
<!DOCTYPE doc [ <!ENTITY cors_settings SYSTEM "cors_settings.xml"> ]> <web-app ...以下のように Filters セクションに参照を追加します。
<!-- ******************* --> <!-- Filters --> <!-- ******************* --> &cors_settings;
<DENODO_HOME>/resources/apache-tomcat/webapps/denodo-odata4-service/WEB-INF/フォルダのcors_settings.xmlファイルを編集します。ファイルの内容のコメント指定を解除します。
デフォルトでは、
cors.allowed.originsプロパティの値は * です。この場合は、あらゆるドメインから受け取った CORS リクエストがこのサービスで許可されます。許可する CORS リクエストの送信元ドメインを制限するには、このプロパティの値 * を、許可する URL のリストに置き換えます (各 URL はカンマで区切ります)。
たとえば、
https://foo.com, http://foo.com, https://foo.bar.comと指定します。他の生成元からの CORS リクエストは、HTTP コード 403 (Forbidden) で拒否されます。
重要
URL ごとに、そのプロトコルも入力します。プロトコルが含まれていない URL は無効です。たとえば、foo.com は無効です。
Virtual DataPort サーバーを再起動して変更を適用します。
サポートされている HTTP ヘッダーメソッド¶
Denodo OData4 Service でサポートされている HTTP ヘッダーメソッドは GET と OPTIONS です。ただし、Denodo に組み込まれている Tomcat Web サーバーでは、 OPTIONS はデフォルトで無効になっています。これを有効にするには以下の手順に従います。
<DENODO_HOME>/resources/apache-tomcat/conf/web.xmlファイルを編集して、以下のブロックにコメントを入れるかブロックを削除します。<security-constraint> <web-resource-collection> <web-resource-name>restricted methods</web-resource-name> <url-pattern>/*</url-pattern> <http-method>OPTIONS</http-method> </web-resource-collection> <auth-constraint/> </security-constraint> <security-constraint> <web-resource-collection> <web-resource-name>restricted methods</web-resource-name> <url-pattern>/*</url-pattern> <http-method-omission>OPTIONS</http-method-omission> </web-resource-collection> </security-constraint>
<DENODO_HOME>/resources/apache-tomcat/webapps/denodo-odata4-service/WEB-INF/cors_settings.xmlファイルを編集します。cors.allowed.methodsプロパティの値を、元のGET, POST, PUT, DELETE, HEAD, OPTIONSからGET, OPTIONSに変更します。以下のようになります。<param-value>GET, OPTIONS</param-value>
