403 Edge Delivery サービスを通じてルーティングされるAEM GraphQL エンドポイントの禁止エラー

AEM as a Cloud Service - Adobe Edge 配信サービスを介してルーティングされたサイトのネイティブ GraphQL エンドポイントに POST リクエストを送信すると、403 Forbidden エラーが発生します。 この問題を解決するには、リファラー OSGi 設定を更新して、GraphQL パス、信頼できるホストパターン、HTTP メソッドを明示的に許可します。

説明 description

環境

  • Adobe Experience Manager(AEM)as a Cloud Service - Sites
  • Adobe Edge 配信サービス(EDS)

問題/症状

GraphQLの POST リクエストは、次の条件下で成功します。

  • Postmanや curl などのツールを使用してパブリッシュドメインに直接アクセスする場合。
  • リクエストがローカルフロントエンド開発環境から発信された場合。

ただし、Adobe Edge 配信サービスを通じてルーティングされると、同じリクエストは 403 Forbidden 応答で失敗します。 観測値は次のとおりです。

  • OPTIONSの呼び出しでは 200 OK が返されます。
  • POST 呼び出しで 403 Forbidden が返される。

構成が確認されました

次の設定が正しく設定されていることを確認しました。

  1. Dispatcher フィルターを使用すると、パス /content/cq:graphql/.* に対してGET、POST およびOPTIONSの各メソッドを実行できます。
  2. ReferrerFilterCORSFilterCSRFPreventionFilter の OSGi 設定は、GraphQL リクエストを許可するように設定されています。
  3. 必要なヘッダー(OriginHostContent-Type)が存在し、削除されません。

解決策 resolution

この問題を解決するには、次の設定でリファラー OSGi 設定(org.apache.sling.security.impl.ReferrerFilter.cfg.json)を更新します。

  1. 許可する必要があるパスを追加します(allow.paths)。

    • /content/cq:graphql/.*
  2. 正規表現を使用してドメインと一致する許可ホストを設定します(allow.hosts.regexp)。

    • https://.*\.adobe\.com(:443)?
    • https://.*\.adobe\.net(:443)?
    • https://.*\.workfront\.com(:443)?
    • https://.*\.workfront-dev\.com(:443)?
    • https://.*\.dev\.workfront\.tech(:443)?
    • https://.*\.aem\.live(:443)?
  3. filter.enabledtrue に設定してフィルタリングを有効にします。

  4. allow.emptytrue に設定して、空のリファラーを許可します。

  5. 許可される HTTP メソッドを指定:

    • GET
    • POST
    • OPTIONS

リファラー OSGi 設定の例 :

{
  "allow.paths": [
    "/content/cq:graphql/.*",

  ] ,
  "allow.hosts.regexp": [
    "https://.*\\.adobe\\.com(:443)?",
    "https://.*\\.adobe\\.net(:443)?",
    "https://.*\\.workfront\\.com(:443)?",
    "https://.*\\.workfront-dev\\.com(:443)?",
    "https://.*\\.dev\\.workfront\\.tech(:443)?",
    "https://.*\\.aem\\.live(:443)?"
  ] ,
  "filter.enabled": true,
  "allow.empty": true,
  "allow.methods": [ "GET", "POST", "OPTIONS"]
}

追加のコンテキストについては、このコミュニティのディスカッション こちらを参照してください。

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f