クロスオリジン リソース共有 (CORS) 機能は、ポリシー ステートメントをオンデマンドでクライアントに提供し、リクエストがポリシーに準拠しているかどうか確認することで、クライアント側のクロスオリジン リクエストを制限します。この機能は、必要に応じて再構成または無効化できます。
ポリシーには、許可される HTTP メソッドのセット、リクエストの送信元、有効なコンテンツ タイプが記述されています。これらはリクエスト URL によって異なり、locked.properties ファイルにエントリを追加することで必要に応じて再設定できます。
プロパティ名の後の省略記号は、プロパティでリストを使用できることを示します。
CORS プロパティ
| プロパティ | 値の種類 | プライマリのデフォルト値 | 他のデフォルト値 |
|---|---|---|---|
| enableCORS | true false | true | なし |
| acceptContentType... | http-content-type | application/x-www-form-urlencoded,application/xml,text/xml | admin=application/json,application/text,application/x-www-form-urlencoded portal=application/json rest=application/json view-vlsi-rest=application/json |
| acceptHeader... | http-header-name | * | admin=Accept,Accept-Encoding,Accept-Charset,Accept-Language,Authorization,Cache-Control,Connection,Content-Language,Content-Length,Content-Type,Cookie,csrftoken,DNT,Host,Origin,Referer,User-Agent broker=Accept,Accept-Encoding,Accept-Charset,Accept-Language,Authorization,Connection,Content-Language,Content-Length,Content-Type,Cookie,Gateway-Location,Gateway-Name,Gateway-Type,Host,Origin,Referer,User-Agent,X-CSRF-Token,X-EUC-Gateway,X-EUC-Health,X-Forwarded-For,X-Forwarded-Host,X-Forwarded-Proto portal=Accept,Accept-Encoding,Accept-Charset,Accept-Language,Authorization,Connection,Content-Language,Content-Length,Content-Type,Cookie,Host,Origin,Referer,User-Agent,X-CSRF-Token rest=Accept,Accept-Encoding,Accept-Charset,Accept-Language,Authorization,Connection,Content-Language,Content-Length,Content-Type,Cookie,csrfToken,Host,Origin,Referer,User-Agent,X-Require-Cloud-Admin-Privilege view-vlsi=Accept,Accept-Encoding,Accept-Charset,Accept-Language,Authorization,Connection,Content-Language,Content-Length,Content-Type,Cookie,csrfToken,Host,Origin,Referer,User-Agent,X-Require-Cloud-Admin-Privilege view-vlsi-rest=Accept,Accept-Encoding,Accept-Charset,Accept-Language,Authorization,Connection,Content-Language,Content-Length,Content-Type,Cookie,csrfToken,Host,Origin,Referer,User-Agent,X-Require-Cloud-Admin-Privilege |
| exposeHeader... | http-header-name | * | なし |
| filterHeaders | true false | true | なし |
| checkOrigin | true false | true | なし |
| checkReferer | true false | false | なし |
| allowCredentials | true false | false | (Horizon 2312 以前)admin, broker, health, misc, portal, rest, saml, tunnel, view-vlsi, view-vlsi-rest = true
(Horizon 2406 以降)admin, broker, health, portal, rest, root, saml, tunnel, view-vlsi, view-vlsi-rest, ws1 = true |
| allowMethod... | http-method-name | GET,HEAD,POST | dct=GET docroot=GET health=GET,HEAD misc=GET,HEAD(Horizon 2312 以前) rest=GET,POST,PUT,PATCH,DELETE root=GET(Horizon 2406 以降) saml=GET,HEAD tunnel=GET,POST |
| allowPreflight | true false | true | なし |
| maxAge | cache-time | 0 | なし |
| balancedHost...
注:Horizon 2111.1/2209 以降では、ここではなく、Horizon Console を使用してロード バランサを設定します。 | load-balancer-name | オフ | なし |
| portalHost... | gateway-name | オフ | なし |
| chromeExtension... | chrome-extension-hash | ppkfnjlimknmjoaemnpidmdlfchhehel 注:この値は、Horizon Client for Chrome の Chrome 拡張機能 ID になります。 | なし |
| iwaBundleId...
注:このプロパティは、バージョン 2406 以降に適用されます。 | chrome-client-bundle-id | ckg65ilaae42o6wd3uj4xfwznhba7pz2p6kojga5c27hkwq5f66qaaic
注:この値は、Horizon IWA クライアントの Chrome バンドル ID になります。 | なし |
| blockHtmlAccess 注:このプロパティは、バージョン 2212 以降に適用されます。 | true false | false | なし |
| blockSwaggerDocs 注:このプロパティは、バージョン 2111.2、2212.1、2303 以降に適用されます。 | true false | いいえ 注:REST API ドキュメントが提供されないようにするには、true に設定します。 | なし |
locked.properties ファイルを使用して、CORS プロパティの使い方を説明します。
enableCORS = true
allowPreflight = true
checkOrigin = true
checkOrigin-misc = false
allowMethod.1 = GET
allowMethod.2 = HEAD
allowMethod.3 = POST
allowMethod-saml.1 = GET
allowMethod-saml.2 = HEAD
acceptContentType.1 = application/x-www-form-urlencoded
acceptContentType.2 = application/xml
acceptContentType.3 = text/xml
オリジンの確認
オリジンの確認は、デフォルトで有効になっています。有効な場合、リクエストが受け入れられるのは、オリジンがない場合か、オリジンが外部 URL に指定されたアドレス、balancedHostアドレス、portalHost アドレス、chromeExtension ハッシュ、null またはlocalhost に一致している場合だけです。オリジンがこのいずれかでない場合、「予期しないオリジン」エラーがログに記録され、ステータス 404 が返されます。
**注:**ブラウザによっては、Origin ヘッダーが提供されません、また、まったく提供されない場合もあります。Origin ヘッダーがない場合は、リクエストの Referer ヘッダーをチェックすることもできます。Referer ヘッダーでは、ヘッダー名に「r」が 1 つ含まれています。Referer ヘッダーを確認するには、locked.properties ファイルに次のプロパティを追加します。
checkReferer=true
複数の Connection Server ホストがロード バランシングされている場合、locked.properties ファイルに balancedHost エントリを追加して、ロード バランサのアドレスを指定する必要があります。このアドレスについては、ポート 443 が前提となります。
Unified Access Gateway アプライアンスまたは別のゲートウェイを介してクライアントが接続する場合、portalHost エントリを locked.properties ファイルに追加し、すべてのゲートウェイ アドレスを指定する必要があります。これらのアドレスについては、ポート 443 が前提となります。外部 URL で指定する名前と異なる名前で Connection Server ホストにアクセスするには、portalHost エントリの指定も必要です。
Horizon 2312 以前の場合、Chrome 拡張クライアントは最初のオリジンに独自の ID を設定します。接続を許可するには、locked.properties ファイルに chromeExtension エントリを追加して、拡張機能を登録します。例:
chromeExtension.1=bpifadopbphhpkkcfohecfadckmpjmjd
Horizon 2406 以降の場合、Chrome 拡張クライアントと隔離された Web アプリケーションは最初のオリジンに独自の ID を設定します。接続を許可するには、locked.properties ファイルに chromeExtension または iwaBundleId エントリを追加して、拡張機能またはバンドルを登録します。例:
chromeExtension.1=bpifadopbphhpkkcfohecfadckmpjmjd
iwaBundleId.1=ckg65ilaae42o6wd3uj4xfwznhba7pz2p6kojga5c27hkwq5f66qaaic
「ホスト チェック」も参照してください。
このページは役に立ちましたか?