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) |
許可されるオリジンの有効な値は次のとおりです:
注意: アスタリスク(*)は、すべてのオリジンからのリソースへのアクセスを許可する有効な値としてサポートされなくなりました。 許可されたオリジンの値としてアスタリスク(*)をすでに設定している場合は、許可されたオリジンに置換してください。ノート: プロファイル値の使用中に覚えておくべき重要な点は次のとおりです:
|
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)
注意: リスクを評価せずに値をTrueに設定しないでください。 ORA_CORS_ORIGINSの値がアスタリスク(*)に設定されている場合、値はTrueに設定しないでください。 ORA_CORS_ORIGINS値が*の場合、Access-Control-Allow-Credentialsヘッダーは設定されません。 値をTrueに設定すると、すべてのFusion Applications RESTエンドポイントに影響します。 |
有効な値:
|
CORS 「HTTPヘッダー」を構成して、あるドメインで実行されているクライアント・アプリケーションがHTTPリクエストを使用して別のドメインからリソースを取得できるようにします。 たとえば、クライアント・アプリケーションがREST APIサーバーAからリソースXを取得した場合、クライアント・アプリケーションはHTTPリクエストを送信して、リソースYをREST APIサーバーBから取得します。 クライアント・アプリケーションからのこのクロス・サーバー・リクエストを許可するには、サーバーBでAccess-Control-Allow-Originヘッダーを構成する必要があります。 それ以外の場合、リクエストは失敗します。
CORSヘッダーの構成方法の詳細は、Oracle Help Centerにある関連するFusion Applications製品の実装ガイドを参照してください。