Solución de problemas de errores 403 prohibidos en el envío de formularios Edge Delivery Services troubleshooting-403-forbidden-edge-delivery
Al enviar formularios desde Edge Delivery Services a AEM Publish, puede encontrar un error 403 Prohibido. Este error indica que el servidor se niega a procesar la solicitud, normalmente debido a configuraciones de seguridad. Este artículo le ayuda a identificar y resolver las causas más comunes de este problema.
Descripción del problema
Los usuarios experimentan un error 403 prohibido al enviar formularios de Edge Delivery Services a AEM Publish. El error se muestra de la siguiente manera:
- Código de estado HTTP: 403
- Mensaje de error: "Prohibido" o "Acceso denegado"
- El envío del formulario falla sin llegar al servlet de envío de AEM
Este problema suele ocurrir en integraciones de Edge Delivery Services en las que formularios alojados en dominios de Edge (.aem.live, .aem.page, .hlx.page, .hlx.live) intentan enviar datos a instancias de publicación de AEM.
- Repositorio:
https://github.com/adobe/abc - Sitio 1:
main--abc--adobe.aem.live - Sitio 2:
main--abc1--adobe.aem.live
Causas y soluciones comunes
Un error 403 prohibido en el envío de formularios de Edge Delivery Services puede tener varias causas. Siga estos pasos para solucionar problemas en orden:
1. Problemas del CORS (Intercambio de Recursos de Origen Cruzado)
Síntomas:
- La consola del explorador muestra mensajes de error relacionados con CORS
- La pestaña Red muestra la solicitud bloqueada antes de llegar al servidor
- Mensajes de error que mencionan "Solicitud de origen cruzado bloqueada"
Diagnóstico:
- Abrir herramientas para desarrolladores del explorador (F12)
- Compruebe la pestaña Consola para ver mensajes de error CORS
- Buscar mensajes como:
Access to fetch at 'https://publish-xxx.adobeaemcloud.com' from origin 'https://main--repo--owner.aem.live' has been blocked by CORS policy
Solución:
Configure las opciones de CORS en AEM para permitir solicitudes de los dominios de sitio específicos de Edge Delivery:
# Developer Localhost
SetEnvIfExpr "env('CORSProcessing') == 'true' && req_novary('Origin') =~ m#(http://localhost(:\d+)?$)#" CORSTrusted=true
# Edge Delivery Sites - Add each site domain individually
SetEnvIfExpr "env('CORSProcessing') == 'true' && req_novary('Origin') =~ m#(https://main--abc--adobe\.aem\.live$)#" CORSTrusted=true
SetEnvIfExpr "env('CORSProcessing') == 'true' && req_novary('Origin') =~ m#(https://main--abc1--adobe\.aem\.live$)#" CORSTrusted=true
# Legacy Franklin domains (if still in use)
SetEnvIfExpr "env('CORSProcessing') == 'true' && req_novary('Origin') =~ m#(https://.*\.hlx\.page$)#" CORSTrusted=true
SetEnvIfExpr "env('CORSProcessing') == 'true' && req_novary('Origin') =~ m#(https://.*\.hlx\.live$)#" CORSTrusted=true
main--abc--adobe.aem.live y main--abc1--adobe.aem.live por sus dominios de sitio reales. Cada sitio alojado desde el mismo repositorio requiere una entrada de configuración CORS independiente.Para obtener información detallada sobre la configuración de CORS, consulte la Guía de configuración de CORS.
2. Reglas de Dispatcher
Síntomas:
- El error 403 se produce sin mensajes CORS en la consola del explorador
- La solicitud llega al servidor, pero Dispatcher la ha bloqueado
- Se produce un error antes de alcanzar la capa de aplicación de AEM
Diagnóstico:
- Compruebe si la dirección URL de la solicitud coincide con alguna regla de filtro de Dispatcher
- Revise la configuración de Dispatcher para
/filterreglas que podrían bloquear solicitudes POST - Compruebe que el punto final de envío del formulario esté permitido en la configuración de Dispatcher
Solución:
Actualice la configuración de Dispatcher para permitir las solicitudes de envío de formularios:
- Asegúrese de que se permiten las solicitudes POST a los extremos de envío de formularios
- Agregar las reglas de filtro adecuadas para los dominios de Edge Delivery
- Compruebe que la ruta del servlet de envío no esté bloqueada
Ejemplo de configuración del filtro Dispatcher:
/filter {
# Allow POST requests to form submission servlet
/0100 { /type "allow" /method "POST" /url "/content/forms/af/*" }
/0101 { /type "allow" /method "POST" /url "/adobe/forms/af/submit/*" }
/0102 { /type "allow" /method "POST" /url "/content/forms/portal/submit/adaptiveform" }
}
3. Problemas del filtro de referente
Síntomas:
- Error 403 sin problemas CORS en la consola del explorador
- La solicitud llega a AEM, pero el filtro de referente de Sling la rechaza
- El error se produce en la capa de aplicación de AEM
Diagnóstico:
Compruebe los registros de errores de AEM para ver los mensajes de rechazo del filtro de referente:
-
Acceder a los registros de AEM Cloud Service a través de Cloud Manager
-
Busque entradas en
aemerror.logque contengan:- "Filtro de referente rechazado"
- "org.apache.sling.security.impl.ReferrerFilter"
- Mensajes que indican errores de validación del referente
Ejemplo de entrada de registro:
[ERROR] org.apache.sling.security.impl.ReferrerFilter Referrer filter rejected request with referrer 'https://main--abc--adobe.aem.live' for POST /content/forms/af/submit
Solución:
Configure el Filtro de referente para permitir los dominios de sitio específicos de Edge Delivery:
-
Crear o actualizar el archivo de configuración de OSGi:
org.apache.sling.security.impl.ReferrerFilter.cfg.json -
Agregue la siguiente configuración con los dominios de sitio específicos:
code language-json { "allow.empty": false, "allow.hosts": [ "main--abc--adobe.aem.live", "main--abc1--adobe.aem.live" ], "allow.hosts.regexp": [ "https://.*\\.aem\\.live:443", "https://.*\\.aem\\.page:443", "https://.*\\.hlx\\.page:443", "https://.*\\.hlx\\.live:443" ], "filter.methods": [ "POST", "PUT", "DELETE", "COPY", "MOVE" ], "exclude.agents.regexp": [ "" ] } -
Implementar la configuración mediante Cloud Manager
allow.hosts. El uso de solo patrones de regex puede no ser suficiente para todos los escenarios. Incluya dominios específicos y patrones de regex para una cobertura completa.Pasos de diagnóstico
Siga estos pasos para identificar la causa específica del error 403:
Paso 1: Comprobar la consola del explorador
- Abrir herramientas para desarrolladores del explorador (F12)
- Vaya a la pestaña Consola
- Intentar envío de formulario
- Buscar mensajes de error relacionados con CORS
Si hay errores CORS: Siga la solución CORS indicada arriba.
Si no hay errores CORS: Continúe con el paso 2.
Paso 2: Marque la pestaña Red
- Abrir herramientas para desarrolladores del explorador (F12)
- Vaya a la pestaña Red
- Intentar envío de formulario
- Comprobación de los detalles de la solicitud fallida
- Consultar los encabezados de respuesta y el estado
Si la solicitud no llega al servidor: Probablemente sea un problema de Dispatcher.
Si la solicitud llega al servidor pero falla: Probablemente sea un problema de filtro de referente.
Paso 3: Comprobación de los registros de AEM
- Acceder a Cloud Manager
- Navegar a entornos → su entorno → registros
- Descargar o ver
aemerror.log - Buscar entradas en el momento del envío del formulario
- Busque el Filtro de referente o mensajes relacionados con la seguridad
Prevención y prácticas recomendadas
1. Configuración correcta durante la instalación
- Configuración de CORS, Dispatcher y Filtro de referente durante la configuración inicial de Edge Delivery Services
- Para cada nuevo sitio: Agregue el dominio específico a todas las listas de permitidos (CORS, Filtro de referente)
- Probar los envíos de formularios en el entorno de desarrollo antes de activarse
2. Configuraciones específicas del entorno
- Utilizar diferentes configuraciones para entornos de desarrollo, ensayo y producción
- Incluir dominios de host local para pruebas de desarrollo local
- Documentar todos los dominios de sitio que necesitan acceso de lista de permitidos para su repositorio
3. Monitoreo y registro
- Configurar la monitorización de registros para los rechazos del filtro de referente
- Implementar el control de errores adecuado en el código de envío del formulario
- Uso de las herramientas para desarrolladores de navegadores durante la prueba
4. Documentación y conocimiento del equipo
- Mantener un registro de todos los dominios de sitio que usan el mismo repositorio
- Formación del equipo de desarrollo en pasos de solución de problemas
- Mantener una lista de comprobación para la configuración de formularios de Edge Delivery Services
- Actualizar listas de permitidos cada vez que se creen nuevos sitios a partir de repositorios existentes
Administración de dominios de sitio para configuraciones de reprocesamiento
Con las arquitecturas Helix-5 y repoless, siga estas directrices:
Al crear sitios nuevos
- Identificar el dominio del sitio (por ejemplo,
main--newsite--adobe.aem.live) - Actualice la configuración de CORS para incluir el nuevo dominio
- Actualizar filtro de referente para incluir el nuevo dominio en
allow.hosts - Probar envío de formulario desde el nuevo sitio
- Documentar el nuevo dominio en el registro del sitio
Patrones de nombres de dominio
- Patrón estándar:
{branch}--{site}--{owner}.aem.live - Cada sitio obtiene un dominio único incluso cuando comparte el mismo repositorio
- Se pueden usar los dominios
.aem.livey.aem.page
Administración de configuración
- Usar entradas de dominio específicas en
allow.hostspara mejorar la seguridad - Suplemento con patrones regex para una cobertura más amplia
- Auditar y actualizar regularmente las listas de permitidos a medida que se añaden o eliminan sitios
Recursos adicionales
Temas relacionados
¿Necesita ayuda adicional? Si sigue teniendo problemas después de seguir estos pasos, póngase en contacto con el servicio de atención al cliente de Adobe con:
- Sus mensajes de error específicos
- Detalles del entorno de AEM Cloud Service
- Todos los dominios de sitio de Edge Delivery Services que necesitan acceso para enviar formularios
- Entradas de registro relevantes desde el momento del error
¿Necesita ayuda adicional? Si sigue teniendo problemas después de seguir estos pasos, póngase en contacto con el servicio de atención al cliente de Adobe con:
- Sus mensajes de error específicos
- Detalles del entorno de AEM Cloud Service
- Información del dominio de Edge Delivery Services
- Entradas de registro relevantes desde el momento del error