403 Edge Delivery 서비스를 통해 라우팅된 AEM GraphQL 엔드포인트에 대해 금지된 오류
AEM as a Cloud Service의 기본 GraphQL 엔드포인트에 대한 POST 요청을 수행하면 Adobe Edge Delivery Service를 통해 라우팅된 사이트로 인해 403 금지 오류가 발생합니다. 해결 방법에는 GraphQL 경로, 신뢰할 수 있는 호스트 패턴 및 HTTP 메서드를 명시적으로 허용하도록 레퍼러 OSGi 구성을 업데이트하는 작업이 포함됩니다.
설명 description
환경
- Adobe Experience Manager(AEM) as a Cloud Service - Sites
- Adobe EDS(Edge Delivery Service)
문제/증상
다음 조건에서 GraphQL POST 요청이 성공했습니다.
- Postman 또는 curl과 같은 도구를 사용하여 게시 도메인에 직접 액세스할 수 있습니다.
- 요청이 로컬 프론트엔드 개발 환경에서 발생하는 경우.
그러나 Adobe Edge Delivery Service를 통해 라우팅되면 동일한 요청이 실패하고 403 Forbidden 응답이 발생합니다. 관찰에는 다음이 포함됩니다.
- OPTIONS 호출이 200 OK 를 반환합니다.
- POST 호출이 403 금지됨 을(를) 반환합니다.
구성 확인됨
다음 구성이 올바르게 설정되었는지 확인했습니다.
- Dispatcher 필터를 사용하면
/content/cq:graphql/.*
경로에 GET, POST 및 OPTIONS 메서드를 사용할 수 있습니다. ReferrerFilter
,CORSFilter
및CSRFPreventionFilter
에 대한 OSGi 구성이 GraphQL 요청을 허용하도록 설정되었습니다.- 필수 헤더(
Origin
,Host
,Content-Type
)가 있으며 제거되지 않았습니다.
해결 방법 resolution
이 문제를 해결하려면 다음 설정으로 레퍼러 OSGi 구성(org.apache.sling.security.impl.ReferrerFilter.cfg.json
)을 업데이트하십시오.
-
허용해야 하는 경로 추가(
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(으)로 설정하여 빈 레퍼러를 허용합니다. -
허용되는 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