クロスオリジンリソースシェアリング(CORS)は、Web アプリケーションサーバーがクロスオリジンアクセス制御を実行できるようにする重要なセキュリティポリシーです。これは、クロスオリジンセキュアデータ転送の実装に役立ちます。クラウドネイティブゲートウェイでは、ルートレベルで CORS ポリシーを構成できます。ビジネス要件に基づいて、特定のドメイン名またはリクエストメソッドからリソースにアクセスできます。これにより、クロスサイトリクエストフォージェリなどのセキュリティリスクを防ぎ、サービスの信頼性とセキュリティを確保します。
CORS ポリシーの構成
[MSE コンソール] にログオンします。上部のナビゲーションバーで、リージョンを選択します。
左側のナビゲーションペインで、Cloud-Native Gateway > ゲートウェイリスト を選択します。[ゲートウェイ] ページで、ゲートウェイの名前をクリックします。
左側のナビゲーションペインで、Routes をクリックし、[ルート] タブをクリックします。
[ルート] タブで、変更するルーティングルールを見つけ、Actions 列の Policies をクリックします。
Policies タブで、CORS をクリックします。
説明CORS ポリシーは、モックサービスには適用されません。実際のバックエンドテストサービスを構成する必要があります。
CORS タブでパラメーターを構成し、[保存] をクリックします。
パラメーター
説明
Allowed Origins
ブラウザーを使用して現在のサーバーのリソースにアクセスできるオリジン。構成ルール:
すべてのオリジンを指定するには、アスタリスク(
*
)を入力します。ルートドメイン名を指定するには、
*.example.com
のように、ドメイン名でアスタリスク(*)をワイルドカード文字として使用します。複数のオリジンを指定するには、各オリジンを別の行に入力します。各オリジンは
http://
またはhttps://
で始まる必要があります。
説明指定されたドメイン名は、
Access-Control-Allow-Origin
ヘッダーの値です。クライアントから送信されたリクエストの Origin ヘッダーがこのパラメーターで指定されたオリジンと一致する場合、レスポンスのAccess-Control-Allow-Origin
ヘッダーはリクエストの Origin 値に設定されます。Allowed Methods
CORS リクエストで許可される HTTP メソッド。有効な値:GET、POST、PUT、DELETE、HEAD、OPTIONS、および PATCH。
説明指定されたメソッドは、Access-Control-Allow-Methods ヘッダーの値です。
Allowed Request Headers
ブラウザーの組み込みヘッダー以外に、CORS リクエストで許可される追加のヘッダー。構成ルール:
すべてのリクエストヘッダーを指定するには、アスタリスク(
*
)を入力します。複数のリクエストヘッダーを指定するには、各リクエストヘッダーを別の行に入力します。
説明指定されたヘッダーは、Access-Control-Allow-Headers ヘッダーの値です。
Allowed Response Headers
ブラウザーと JavaScript ファイルで取得できるレスポンスヘッダー。構成ルール:
すべてのレスポンスヘッダーを指定するには、アスタリスク(
*
)を入力します。複数のレスポンスヘッダーを指定するには、各レスポンスヘッダーを別の行に入力します。
説明指定されたヘッダーは、Access-Control-Expose-Headers ヘッダーの値です。
Allow to Carry Credentials
CORS リクエストで資格情報を許可するかどうかを指定します。
説明パラメーター値は、Access-Control-Allow-Credentials ヘッダーの値です。
Precheck Expiration Time
OPTIONS メソッドを使用するプリフライトリクエストがキャッシュされる最大期間。
説明指定された期間は、Access-Control-Max-Age ヘッダーの値です。
Enable
CORS ポリシーを有効にするかどうかを指定します。Enable
ポリシーを有効にすると、ポリシーに基づいて CORS リクエストが許可されます。
ポリシーを無効にすると、すべての CORS リクエストが拒否されます。
結果の確認
次のコマンドを実行して、結果を確認します。
curl -I -H "Origin: http://example.com" -H 'Host: www.test.com' -X OPTIONS http://121.196.XX.XX/demo/item/list
次のようなレスポンスが返されます。
HTTP/1.1 200 OK allow: GET,HEAD,OPTIONS x-content-type-options: nosniff x-xss-protection: 1; mode=block cache-control: no-cache, no-store, max-age=0, must-revalidate pragma: no-cache expires: 0 x-frame-options: DENY content-length: 0 date: Tue, 30 Nov 2021 03:20:31 GMT x-envoy-upstream-service-time: 6 access-control-allow-origin: http://example.com access-control-allow-credentials: true access-control-expose-headers: * server: istio-envoy
参照
CORS の詳細については、「クロスオリジンリソースシェアリング (CORS)」をご参照ください。