Cross-Origin Resource Sharingの構成
使用しているRESTクライアントによっては、Cross-Origin Resource Sharing (CORS)の構成が必要になる場合と必要ない場合があります。 CORSの構成が必要なのは、JavaScriptなどのブラウザベースのプログラミング言語で開発されたクライアントを使用する場合のみです。 このようなクライアントは、ブラウザ内のwebページのコンテキスト内でのみリクエストを完了したり、REST APIにアクセスできます。
CORSを使用する理由
簡単に言うと、CORSは、サーバーとブラウザが相互に通信する方法、および異なるドメイン間で通信を安全に行うかどうかを定義する一連のルールです。 CORSは仕様として、すべてのブラウザで使用できるクロスドメイン・リクエストを実装するための標準的な方法を提供します。
すべてのブラウザで「同一元的政策」が適用されます。 このポリシーは、あるwebページに含まれるスクリプトが別のWebページのデータにアクセスすることを許可しますが、両方のWebページが同じドメインからのものである場合のみです。 その結果、あるドメインで実行されるブラウザベースのプログラミング言語で開発されたクライアントは、別のドメインからリソースを取得できません。
Oracle CloudでのCORSの構成方法
Fusion ApplicationsでCORSを有効にするには、設定およびメンテナンス作業領域の管理者プロファイル値の管理タスクを使用してCORSヘッダーのプロファイル・オプション値を設定する必要があります。次の表に、サポートされているCORSヘッダーと、各ヘッダーに設定できるプロファイル・オプション値を示します。
CORSヘッダー | 使途 | プロファイル・オプション名(プロファイル・オプション・コード) | プロファイル・オプションの値 |
---|---|---|---|
Access-Control-Allow-Origin | クライアント・アプリケーションがリソースにアクセスできる信頼できるオリジンのスペース区切りのリストを提供します。 | Cross-Origin Resource Sharingで許可されるオリジン(ORA_CORS_ORIGINS) ノート: 以前のプロファイル・オプションORACLE.ADF.VIEW.ALLOWED_ORIGINSを使用してCORSを構成した場合、関連するプロファイル値は、最新のアプリケーション・アップグレードの一部として新しいプロファイル・オプションORA_CORS_ORIGINSにコピーされます。 このプロファイル・オプションに継承された変更が、自分のCORS構成要件に準拠しているかどうかを検証する必要があります。 |
許可されるオリジンの有効な値は次のとおりです:
ノート: プロファイル値の使用中に覚えておくべき重要な点は次のとおりです:
|
Access-Control-Max-Age | フライト・リクエストに対するレスポンスがキャッシュされる期間を指定します。 | CORS: Access-Control-Max-Age (CORS_ACCESS_CONTROL_MAX_AGE) | プリフライト要求のキャッシュのデフォルト値は3600秒です。 |
Access-Control-Allow-Methods | リクエスト内の許可されるHTTPメソッドのカンマ区切りリストを提供します。 | CORS: Access-Control-Allow-Methods (CORS_ACCESS_CONTROL_ALLOW_METHODS) | 許可されるメソッドのデフォルト値は、OPTIONS、HEAD、GET、POST、PUT、PATCHおよびDELETEです。 |
Access-Control-Allow-Headers | リクエスト内の許可されるHTTPヘッダーのカンマ区切りリストを提供します。 | CORS: Access-Control-Allow-Headers (CORS_ACCESS_CONTROL_ALLOW_HEADERS) | 許可されるヘッダーのデフォルト値は、Accept、Accept-Encoding、Authorization、Cache-Control、Content-Encoding、Content-MD5、Content-Type、Effective-Of、If-Match、If-None-Match、Metadata-Context、Origin、Prefer、REST-Framework-Version、REST-Pretty-Print、Upsert-Mode、User-Agent、X-HTTP-Method-OverrideおよびX-Requested-Byです。 |
Access-Control-Allow-Credentials | クライアント・アプリケーションが要求でユーザー資格証明を送信できるかどうかを指定します。 | CORS: Access-Control-Allow-Credentials (CORS_ACCESS_CONTROL_ALLOW_CREDENTIALS) | 有効な値:
|
CORS 「HTTPヘッダー」を構成して、あるドメインで実行されているクライアント・アプリケーションがHTTPリクエストを使用して別のドメインからリソースを取得できるようにします。 たとえば、クライアント・アプリケーションがREST APIサーバーAからリソースXを取得した場合、クライアント・アプリケーションはHTTPリクエストを送信して、リソースYをREST APIサーバーBから取得します。 クライアント・アプリケーションからのこのクロス・サーバー・リクエストを許可するには、サーバーBでAccess-Control-Allow-Originヘッダーを構成する必要があります。 それ以外の場合、リクエストは失敗します。
CORSヘッダーの構成方法の詳細は、Oracle Help Centerにある関連するFusion Applications製品の実装ガイドを参照してください。