クロスドメインエラーの修正
最終更新日 2021-09-08
ホストされているドメイン以外のドメインでホストされているコンテンツを Adobe Flash などのブラウザプラグインで再生する際に、しばしばアクセス許可が求められます。クロスドメインポリシーファイルは、この許可を与えるもので、コンテンツの再生を可能にするために必要であることが多々あります。このガイドでは、シンセティックな crossdomain.xml レスポンスを作成し、クロスドメインエラーを解決する方法について説明します。
ヒント
Error #2048
は、crossdomain.xml の問題を示す一般的なサインです。
- Fastly コントロールパネルにログインします。
- Home ページから、適切なサービスを選択します。検索ボックスで ID、名称、ドメインによる検索が行えます。
- Edit configuration ボタンをクリックし、アクティブなバージョンをクローンするオプションを選択します。Domains ページが表示されます。
- Content リンクをクリックします。Content ページが表示されます。
Set up advanced response ボタンをクリックします。Create a synthetic response ページが表示されます。
以下の要領で Create a synthetic response ページの各フィールドに入力します。
- Name フィールドに、人間可読なレスポンス名を入力します。例:
crossdomain.xml
。 - Status メニューから、クライアントに返す HTTP コードを選択します。例えば
200 OK
など。 - MIME Type フィールドに、レスポンスの MIME タイプとして
text/x-cross-domain-policy
を入力します。 - Response フィールドに、リクエストに応答するための正しい形式で書かれた crossdomain.xml の内容を追加します。詳細については、クロスドメインの許容と制限をご参照ください。
- Name フィールドに、人間可読なレスポンス名を入力します。例:
Create ボタンをクリックします。新しいレスポンスがレスポンスリストに表示されます。
新しいレスポンス名の右側にある Attach a condition リンクをクリックします。 Create a new condition ウィンドウが表示されます。
以下の要領でCreate a new condition設定画面の各フィールドに入力します。
- Type メニューから、Request を選択します。
- Name フィールドに、分かりやすいレスポンス条件名を入力します。例:
crossdomain.xml
。 - Apply if フィールドに、
req.url == "/crossdomain.xml"
と入力します。
Save and apply to をクリックし、新しいリクエスト条件を作成します。
- Activate ボタンをクリックして設定変更をデプロイします。
クロスドメインの許容と制限
crossdomain.xml ポリシーファイルは、ホストされているドメイン以外のドメインにてコンテンツを再生するための権限をこれらのブラウザプラグインに与えます。このファイルは通常 crossdomain.xml
という名前で、デフォルトでホストされているドメインのルートディレクトリに配置されます。このファイルを使用し、リクエストされたコンテンツを再生する際のアクセスの許容度や制限度を定義します。
以下のポリシー例では、foo.example.com
および bar.example.com
ドメインがデータをプルし、www.example.com
ドメインが X-foo
ヘッダー経由でデータをプッシュすることを許可しています。
1<?xml version="1.0"?>2 <!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">3 <cross-domain-policy>4 <site-control permitted-cross-domain-policies="master-only"/>5 <allow-access-from domain="foo.example.com" secure="true"/>6 <allow-access-from domain="bar.example.com" secure="true"/>7 <allow-http-request-headers-from domain="www.example.com" headers="X-foo" secure="true"/>8 </cross-domain-policy>
注意
この例では、secure="true"
を使用し、HTTPS によるアクセスを強制しています。 secure="false"
を使用すれば、HTTP 経由のアクセスが許可されます。