Flash のクロスドメイン セキュリティ

Product
Video Cloud
対象となる役割
開発者
バージョン
Brightcove 5
モジュール
Player API
エディション
すべて

Brightcove のプレーヤは、Flash Player 9 技術によって構築されています。そのため、プレーヤでは Flash 9 のクロスドメイン セキュリティ機能を使用します。この問題に関する詳細は、次の Adobe Flash の記事を参照してください。

次の記事も参考にしてください:Flash Security Cross Domain(英語)

Flash では、Web ブラウザで再生される SWF は、SWF の生成元となる Web ドメイン外にあるデータにはアクセスすることはできません。セキュリティにおけるこのような制約に対する例外を作成するには、ポリシ ファイルを作成します。このポリシ ファイルは、crossdomain.xml という名前の XML ファイルでなくてはなりません。crossdomain.xml ポリシ ファイルは、プレーヤがアクセスする必要がある各サーバーのサイト ルートでホストされる必要があります。原則的には、ドメイン B の SWF X からドメイン A の SWF Z にアクセスを許可する場合、ドメイン A の crossdomain.xml ポリシ ファイルにドメイン B を追加するか、SWF X で Security.allowDomain("B") ステートメントを使用します。つまり、ドメイン B 下でホストされるどの SWF も、ドメイン A の SWF X にアクセスできるということになります。

もっともシンプルな形式の crossdomain.xml ポリシ ファイルでは、どのドメインにもアクセスを許可するワイルド カードを使用します。

<cross-domain-policy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:noNamespaceSchemaLocation="http://www.adobe.com/xml/schemas/PolicyFile.xsd">
  <allow-access-from domain="*"/>
</cross-domain-policy> 

これはもっとも簡単に設定できるアプローチですが、Adobe は推奨していません。代わりに、特定の必須ドメインに対してのみアクセスを許可する必要があります。

crossdomain.xml ポリシ ファイルの例をもう 1 つ示します。

<cross-domain-policy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:noNamespaceSchemaLocation="http://www.adobe.com/xml/schemas/PolicyFile.xsd">
  <allow-access-from domain="admin.brightcove.co.jp"/>
  <allow-access-from domain="*.example.com"/>
</cross-domain-policy>  

クロスドメイン アクセスを必要とするいくつかの Brightcove 機能

crossdomain.xml ポリシ ファイルの配備を必要とする Brightcove 特有の機能をいくつか示します。

カスタム プレーヤのラベル

ラベルの XML ファイルの URL にポイントすることによって、プレーヤのラベルをカスタマイズできます。XML ファイルをホストするドメインで、crossdomain.xml ファイルに <allow-access-from domain="admin.brightcove.co.jp" /> を含める必要があります。

カスタム プレーヤのコンポーネントおよびテーマ

BEML で定義されたカスタム プレーヤ テンプレートで、SWF ファイルの URL をポイントする <SWFLoader/> または <Module/> 要素のいずれかを使用し、SWF としてコンパイルされたカスタム コンポーネントをプレーヤにロードする必要があることを指定することができます。また、SWF ファイルの URL をポイントする theme 属性を使用して、SWF としてコンパイルされたカスタム テーマをプレーヤにロードする必要があることを指定することができます。これらのいずれの場合にも、SWF ファイルをホストするドメインは、crossdomain.xml ファイルに <allow-access-from domain="admin.brightcove.co.jp" /> を含める必要があります。

リモート プログレッシブ ダウンロード アセットによる画像キャプチャ

リモート アセットで Media モジュールの画像キャプチャ ツールを使用するには、リモート アセットをホストする CDN ホストに crossdomain.xml Flash セキュリティ ポリシ ファイルが必要になります。

このセキュリティ ポリシ ファイルは、*.brightcove.co.jp を含む必要があります。

次に例を示します。

<?xml version="1.0"?>
<cross-domain-policy>
    <allow-access-from domain="*.brightcove.co.jp" secure="false" />
</cross-domain-policy>

Brightcove によってホスティングされていない Ad Tag Translator

http://admin.brightcove.co.jp/adtranslator で Brightcove によってホストされている Ad Tag Translator を使用する場合は、クロスドメイン エントリは必要ありません。それは、Advertising モジュール SWF と adtranslator.swf SWF は、同じドメインにあるからです。自分の Ad Tag Translator をホストしている場合、その Ad Tag Translator をホストするドメインで crossdomain.xml ファイルに <allow-access-from domain="admin.brightcove.co.jp" /> を追加する必要があります。または、Ad Tag Translator で Security.allowDomain("admin.brightcove.co.jp") を使用するという方法もあります。その場合、crossdomain.xml ポリシ ファイルのエントリは必要ありません。

Google AdSense for Video との統合

Brightcove と Google AdSense for video との統合を行うには、ドメインの crossdomain.xml ポリシ ファイルに次のエントリを追加する必要があります。

<allow-access-from domain="*.brightcove.co.jp" />
<allow-access-from domain="*.googlesyndication.com" />

 

タグ
crossdomain.xml, security