このページでは、アプリケーションとブラウザ RUM の互換性を確保するために、コンテンツ セキュリティ ポリシー(CSP)を有効にする方法について説明します。
CSP に必要なディレクティブ
インストゥルメント化されたアプリケーションで CSP を有効にするには、Content-Security-Policy
ヘッダーに次の必須のディレクティブを追加します。
場合によっては、次のディレクティブも使用する必要があります。
script-src
script-src
ディレクティブは、adrum-ext.js
の場所を指定します。デフォルトでは 、adrum-ext.js
は cdn.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