AEMでのコンテンツセキュリティポリシー設定の競合

厳格なコンテンツセキュリティポリシー(CSP)ルールは、多くの場合、AEM オーサーUIを壊したり、CSP ヘッダーが欠落していることに関するトリガースキャナーの警告を表示したり、オーサー環境とパブリッシュ環境でCSPが適用されたときにデプロイメントの問題を引き起こしたりします。 DispatcherまたはCDN レイヤーでCSPを構成し、オーサー環境を厳格なポリシーから除外し、必要な場合にのみCSPを適用します。

説明 description

環境

  • Adobe Experience Manager as a Cloud Service (AEMaaCS)
  • AEM Managed Services
  • Adobe Developer App Builder

問題/症状

  • オーサーUIのツールバー、コンポーネント、またはiframeの読み込みに失敗する。
  • セキュリティスキャナーで、ログインページにCSP ヘッダーが見つからないことが報告されます。
  • default-src 'self’などの制限付きCSP ディレクティブを適用すると、サイトが機能しなくなります。
  • Unsafe-inlineまたはunsafe-evalを制限するCSP ディレクティブは、UI エラーを引き起こします。
  • 組み込みのCSP レポートエンドポイントはありません。

原因

AEMでは、CSPの包括的なサポートをすぐに提供しません。 多くのコアクライアントライブラリは、インライン JavaScriptと、厳格なCSP ポリシーと互換性のないビヘイビアーに依存しています。 CSPをグローバルに適用すると、作成者環境に意図せず影響を与える可能性があります。 CSP接続はデフォルトで生成されないので、カスタム実装が必要です。 ログインページには、デフォルトでCSP ヘッダーも含まれていません。

解決策 resolution

この問題を解決するには、次の手順に従います。

  1. CDN、Dispatcher、リバースプロキシレイヤーなど、CSP ヘッダーが設定されている場所を特定します。
  2. オーサー環境とパブリッシュ環境には別々のホスト名を使用します。
  3. オーサリングインターフェイスのエラーを防ぐために、オーサー環境からCSP ヘッダーを削除または除外します。
  4. CSPをパブリッシュ環境にのみ適用します。
  5. より厳格なポリシーが必要な場合は、ドメインホワイトリストを利用するか、カスタムのnonce ソリューションを導入しましょう。
  6. レポートが必要な場合は、プラットフォーム外でCSP レポートエンドポイントをホストします。
  7. CDNやリバースプロキシなどの最外側のレイヤーにCSPを適用して、一貫した適用を行います。
  8. セキュリティスキャン要件を満たす必要がある場合にのみ、ログインページにCSP ヘッダーを追加します。
  9. 必要なリソースの読み込みが正常に行われ、重大なCSP違反が発生しないことを確認して、設定を検証します。

関連トピックス

recommendation-more-help
experience-cloud-kcs-help-kbarticles