このページでは、アプリケーションとブラウザ RUM の互換性を確保するために、コンテンツ セキュリティ ポリシー(CSP)を有効にする方法について説明します。

CSP に必要なディレクティブ

インストゥルメント化されたアプリケーションで CSP を有効にするには、Content-Security-Policy ヘッダーに次の必須のディレクティブを追加します。

場合によっては、次のディレクティブも使用する必要があります。

script-src

script-src ディレクティブは、adrum-ext.js の場所を指定します。デフォルトでは 、adrum-ext.jscdn.appdynamics.com にあるシスコのコンテンツ配信ネットワーク(CDN)からロードされます。次の例は、script-src ディレクティブをどのように使用するかを示しています。

script-src cdn.appdynamics.com;
CODE

最初の 1 バイトの受信時間を正確に測定するには、ページの上部に次の行を追加します。

window["adrum-start-time"] = new Date().getTime();
JS

この行を読み取るには、次に示すように script-src ディレクティブを 'unsafe-inline' に設定する必要もあります。

script-src 'unsafe-inline'; 
CODE

connect-src

connect-src ディレクティブは、ビーコンが送信される場所を指定します。SaaS ベースの EUM を使用している場合は、次のようなものが使用される可能性があります。


connect-src col.eum-appdynamics.com;
CODE

オンプレミス EUM を使用している場合は、connect-src は EUM サーバを指します。

child-src

クロスドメインセッションの場合は、adrum-xd.html は iframe にロードします。デフォルトでは、これは CDN からロードされるため、次に示すように child-src で CDN を指定する必要があります。

child-src cdn.appdynamics.com;
CODE

frame-ancestors

adrum-xd.html がローカルでホストされている場合、次のように frame-ancestors ディレクティブを使用します。

frame-ancestors /path/to/adrum-xd.html;
CODE

img-src

古いブラウザでは、ビーコンをイメージビーコンとして送信します。古いブラウザでは CSP がサポートされていませんが、常にイメージビーコンを送信するように JavaScript エージェントを構成できます。次の例に示すように、img-src ディレクティブを使用しビーコンの場所を指定して、この構成を行います。

img-src col.eum-appdynamics.com;
CODE

Content-Security-Policy ヘッダーの例

次の Content-Security-Policy ヘッダーは、シスコの CDN から adrum ファイルをロードして、SaaS ベースの EUM にビーコンを送信します。

Content-Security-Policy: connect-src 'self' col.eum-appdynamics.com; script-src 'unsafe-inline' cdn.appdynamics.com; img-src cdn.appdynamics.com; child-src cdn.appdynamics.com
CODE