1. サイト

クロスオリジンリクエストに認証情報を含める

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

Webアプリケーションは、異なるオリジン (ドメイン、プロトコル、ポート) を持つリソースを要求するときに、クロスオリジンHTTPリクエストを実行します。クロスオリジンリソース共有(CORS)は、追加のHTTPヘッダーを使用して、あるオリジン(ドメイン)で実行されているWebアプリケーションが、別のオリジンのサーバーから選択したリソースにアクセスする権限を持つようにブラウザに指示するメカニズムです。

デフォルトでは、CORSはクロスオリジンリクエストにCookieを含めません。クロスオリジンリクエストに認証情報を含めるには、CORS設定を変更する必要があります。

クロスオリジンリクエストに認証情報を含めるには:

  1. サイト定義アイテムに移動し、/sitecore/content/<tenant>/<site>/Settings/Site Grouping/Site/CORSをクリックしてdefaultをクリックします。

  2. CORSセクションのAllow Originフィールドに、サイトのURLを入力します。

    メモ

    Allow Originフィールドの値が空または「*」の場合、SXAは 資格情報を許可 チェック ボックスを無視します。

  3. Allow Credentialsチェック ボックスをオンにします。

    Go to Site, CORS and click default to select the Allow Credentials check box.

例えば:

http://fakeからhttp://sxaにアクセスする場合は、次のスクリプトを使用して、Allow CredentialsフィールドとAllow Originフィールドを設定せずにアクセスします。

<script type="text/javascript">
        var xhr = new XMLHttpRequest();
        xhr.open('GET', 'http://sxa/?device=1', true);
        xhr.withCredentials = true;
        xhr.send(null);
        console.log("test");
    </script>

応答は次のとおりです。

Access to XMLHttpRequest at 'http://sxa/?sc_device=json' from origin 'http://fake' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

Allow CredentialsフィールドとAllow Originフィールドを設定すると、次のようになります。

応答は有効であり、エラーのない適切な応答ヘッダーがあります。

この記事を改善するための提案がある場合は、 お知らせください!