クロスオリジン リソース共有 (CORS) 機能は、ポリシー ステートメントをオンデマンドでクライアントに提供し、リクエストがポリシーに準拠しているかどうか確認することで、クライアント側のクロスオリジン リクエストを制限します。この機能は、デフォルトで有効になっています。

ポリシーには、許可される HTTP メソッドのセット、リクエストの送信元、有効なコンテンツ タイプが記述されています。これらはリクエスト URL によって異なり、locked.properties にエントリを追加することで必要に応じて再設定できます。

プロパティ名の後の省略記号は、プロパティでリストを使用できることを示します。

表 1. CORS プロパティ
プロパティ 値の種類 マスター デフォルト 他のデフォルト値
enableCORS true

false

true n/a
acceptContentType... http-content-type application/x-www-form-urlencoded,application/xml,text/xml
  • admin=application/x-amf
  • helpdesk=application/json,application/text,application/x-www-form-urlencoded
  • view-vlsi-rest=application/json
acceptHeader... http-header-name * n/a
exposeHeader... http-header-name * n/a
filterHeaders true

false

true n/a
checkOrigin true

false

true n/a
allowCredentials true

false

false admin=true

broker=true

helpdesk=true

misc=true

portal=true

saml=true

tunnel=true

view-vlsi=true

view-vlsi-rest=true

allowMethod... http-method-name GET,HEAD,POST misc=GET,HEAD

saml=GET,HEAD

allowPreflight true

false

true n/a
maxAge cache-time 0 n/a
balancedHost load-balancer-name OFF n/a
portalHost... gateway-name OFF n/a
chromeExtension... chrome-extension-hash OFF n/a

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 が返されます。

複数の接続サーバやセキュリティ サーバがロード バランシングされている場合、locked.propertiesbalancedHost エントリを追加して、ロード バランサのアドレスを指定する必要があります。このアドレスについては、ポート 443 が前提となります。

クライアントが Unified Access Gateway または他のゲートウェイ経由で接続する必要がある場合、locked.propertiesportalHost エントリを追加して、すべてのゲートウェイ アドレスを指定する必要があります。また、これらのアドレスについてはポート 443 が前提となります。外部 URL に指定されたものとは異なる名前により、接続サーバまたはセキュリティ サーバへのアクセスを提供する場合も、同様に操作します。

Chrome 拡張クライアントは、最初のオリジンに独自の ID を設定します。接続を許可するには、locked.propertieschromeExtension エントリを追加して、拡張機能を登録します。