oo

CORSの設定

CORSは、クロスオリジンリソース共有(Cross-Origin Resource Sharing)の略です。 オリジンとは別のドメインにあるWebサーバーであり、リソースは画像、PDF、HTMLファイルなど、サーバーに保存されているアセットです。 別のオリジンに保存されているリソースを要求する必要がある場合があります。 これはクロスオリジン要求と呼ばれ、Webサーバーにはそのような要求を許可または拒否するポリシーがあります。

たとえば、ブラウザ自体は、 クロスサイトスクリプト 攻撃を軽減するために、スクリプトからのクロスオリジンAJAXスタイルの要求を許可していません。 これらのAPIは 同一オリジン のポリシーに従います。 ただし、特定のリソースについては、Liferay DXPがそれらを異なるオリジンに提供できるようにすると便利な場合があります。

たとえば、Docs & Mediaで画像を管理している場合、それらに対してクロスオリジン要求を許可することができます。 Liferay Portalの一致するURLまたはJAX-RSアプリケーションリソースに対してCORSを有効にできます。

Liferay DXPサービス用にCORSを有効にする

設定は、[設定] → [システム設定]→ [セキュリティ] → [Security Tools] → [Portal Cross Resource Origin Sharing (CORS)]にあります。

  1. Add] をクリックして構成エントリを作成します。

  2. フォームのフィールドに入力します。 完了したら、 [Save] をクリックします。

    図1:CORSのシステム設定は、LiferayサービスのCORSヘッダーを構成する方法を提供します。

ポータルCORS構成リファレンス

設定 Description
有効 エントリを有効にするには、このボックスをオンにします。
名前 構成エントリに名前を付けます。
URLパターン プラスボタンを使用して、必要な数のパターンを追加します。 共有するリソースへのURLと一致するパターンを定義します。 たとえば、ナレッジベースアプリケーションに多くの添付ファイルがある場合、パターン
/knowledge_base/*
を定義できます。これにより、以下の応答ヘッダーで設定したポリシーに適用できるように、ナレッジベースに格納されているリソースが定義されます。
CORS応答ヘッダー プラスボタンを使用して、必要な数のヘッダーを追加します。 ここで、 CORSヘッダー に対しポリシーを定義します。

CORS を設定するには、設定ファイルを使用することもできます。

JAX-RSアプリケーション用にCORSを有効にする

設定は、[設定] → [システム設定]→ [セキュリティ] → [Security Tools] → [Web Contexts Resource Origin Sharing (CORS)]にあります。

  1. Add] をクリックして構成エントリを作成します。

  2. フォームのフィールドに入力します。 完了したら、 [Save] をクリックします。

    図2:CORS Webコンテキストには、個別のシステム設定カテゴリがあります。

JAX-RS CORS構成リファレンス

設定 説明
動的WebコンテンツのOSGiフィルター LDAPスタイルの フィルター を定義して、このエントリーのCORSヘッダーが適用されるJAX-RSホワイトボードアプリケーションを定義します。 デフォルトのフィルターは
(&(!(liferay.cors=false))(osgi.jaxrs.name=*))
です。このフィルターは、CORSヘッダーを、liferay.cors=false プロパティなしでデプロイされたすべてのJAX-RSホワイトボードアプリケーションに適用します。 これは開発時に役立ちますが、本番環境では可能な限り狭い構成を使用してください。
URLパターン プラスボタンを使用して、必要な数のパターンを追加します。 アクセスするWebサービスへのURLに一致するパターンを定義します。
CORS応答ヘッダー プラスボタンを使用して、必要な数のヘッダーを追加します。 ここで、 CORSヘッダー に対しポリシーを定義します。

JAX-RS開発者は、 @CORS アノテーションを使用して、デプロイされたアプリケーションのポリシーを設定できます。

関連トピック

Capability: