Risoluzione dei problemi relativi a errori non consentiti 403 nell’invio di Edge Delivery Services Form troubleshooting-403-forbidden-edge-delivery
Durante l'invio dei moduli da Edge Delivery Services a AEM Publish, è possibile che si verifichi un errore 403 Forbidden. Questo errore indica che il server rifiuta di elaborare la richiesta, in genere a causa di configurazioni di sicurezza. Questo articolo ti aiuta a identificare e risolvere le cause più comuni di questo problema.
Descrizione del problema
Gli utenti rilevano un errore 403 Forbidden durante l'invio dei moduli da Edge Delivery Services a AEM Publish. L’errore viene visualizzato come:
- Codice di stato HTTP: 403
- Messaggio di errore: "Non consentito" o "Accesso negato"
- L’invio del modulo non riesce senza raggiungere il servlet di invio di AEM
Questo problema si verifica in genere nelle integrazioni Edge Delivery Services in cui i moduli ospitati nei domini Edge (.aem.live, .aem.page, .hlx.page, .hlx.live) tentano di inviare dati alle istanze AEM Publish.
- Archivio:
https://github.com/adobe/abc - Sito 1:
main--abc--adobe.aem.live - Sito 2:
main--abc1--adobe.aem.live
Cause comuni e soluzioni
Un errore 403 Forbidden nell’invio di un modulo Edge Delivery Services può avere più cause. Segui questi passaggi per la risoluzione dei problemi, nell’ordine in cui:
1. Problemi CORS (Cross-Origin Resource Sharing)
Sintomi:
- La console del browser mostra i messaggi di errore relativi a CORS
- La scheda Rete mostra la richiesta bloccata prima di raggiungere il server
- Messaggi di errore che fanno riferimento a "Richiesta tra origini bloccata"
Diagnosi:
- Apri gli strumenti per sviluppatori del browser (F12)
- Controlla la scheda Console per i messaggi di errore CORS
- Cerca messaggi come:
Access to fetch at 'https://publish-xxx.adobeaemcloud.com' from origin 'https://main--repo--owner.aem.live' has been blocked by CORS policy
Soluzione:
Configura le impostazioni CORS in AEM per consentire le richieste dai domini del sito Edge Delivery specifici:
# 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 e main--abc1--adobe.aem.live con i tuoi domini del sito effettivi. Ogni sito ospitato dallo stesso archivio richiede una voce di configurazione CORS separata.Per informazioni dettagliate sulla configurazione CORS, consulta la Guida alla configurazione CORS.
2. Regole Dispatcher
Sintomi:
- L’errore 403 si verifica senza messaggi CORS nella console del browser
- La richiesta raggiunge il server ma è bloccata da Dispatcher
- L’errore si verifica prima di raggiungere il livello dell’applicazione AEM
Diagnosi:
- Verifica se l’URL della richiesta corrisponde a qualsiasi regola del filtro Dispatcher
- Esamina la configurazione di Dispatcher per
/filterregole che potrebbero bloccare le richieste POST - Verifica che l’endpoint per l’invio del modulo sia consentito nella configurazione di Dispatcher
Soluzione:
Aggiorna la configurazione di Dispatcher per consentire le richieste di invio del modulo:
- Verificare che le richieste POST agli endpoint di invio del modulo siano consentite
- Aggiungere regole di filtro appropriate per i domini Edge Delivery
- Verifica che il percorso del servlet di invio non sia bloccato
Esempio di configurazione 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. Problemi relativi al filtro referrer
Sintomi:
- Errore 403 senza problemi CORS nella console del browser
- La richiesta raggiunge AEM ma viene rifiutata dal filtro Sling Referrer
- Si verifica un errore a livello dell’applicazione AEM
Diagnosi:
Controlla i registri di errore di AEM per i messaggi di rifiuto del filtro Referrer:
-
Accedere ai registri di AEM Cloud Service tramite Cloud Manager
-
Cercare le voci in
aemerror.logcontenenti:- "Filtro referrer rifiutato"
- "org.apache.sling.security.impl.ReferrerFilter"
- Messaggi che indicano errori di convalida del referente
Voce di registro di esempio:
[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
Soluzione:
Configura il filtro Referrer per consentire domini del sito Edge Delivery specifici:
-
Crea o aggiorna il file di configurazione OSGi:
org.apache.sling.security.impl.ReferrerFilter.cfg.json -
Aggiungi la seguente configurazione ai tuoi domini di sito specifici:
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": [ "" ] } -
Distribuire la configurazione tramite Cloud Manager
allow.hosts. L’utilizzo di soli modelli regex potrebbe non essere sufficiente per tutti gli scenari. Includi domini specifici e modelli regex per una copertura completa.Passaggi diagnostici
Segui questi passaggi per identificare la causa specifica dell’errore 403:
Passaggio 1: controllare la console del browser
- Apri gli strumenti per sviluppatori del browser (F12)
- Passa alla scheda Console
- Tenta invio modulo
- Cercare messaggi di errore relativi a CORS
Se sono presenti errori CORS: Segui la soluzione CORS precedente.
In assenza di errori CORS: Procedere con il passaggio 2.
Passaggio 2: selezionare la scheda Rete
- Apri gli strumenti per sviluppatori del browser (F12)
- Passa alla scheda Rete
- Tenta invio modulo
- Controlla i dettagli della richiesta non riuscita
- Esaminare le intestazioni di risposta e lo stato
Se la richiesta non raggiunge il server: È probabile che si tratti di un problema di Dispatcher.
Se la richiesta raggiunge il server ma non riesce: Probabile problema con il filtro Referrer.
Passaggio 3: controllare i registri di AEM
- Accesso a Cloud Manager
- Accedere agli ambienti → i registri → dell’ambiente
- Scarica o visualizza
aemerror.log - Cerca voci al momento dell'invio del modulo
- Cerca il filtro Referrer o i messaggi relativi alla sicurezza
Prevenzione e best practice
1. Configurazione corretta durante l'installazione
- Configurare le impostazioni CORS, Dispatcher e Referrer Filter durante la configurazione iniziale di Edge Delivery Services
- inserire nell'elenco Consentiti Per ogni nuovo sito: Aggiungi il dominio specifico a tutti i (CORS, Referrer Filter)
- Test dell’invio dei moduli nell’ambiente di sviluppo prima della pubblicazione
2. Configurazioni specifiche per l’ambiente
- Utilizzare configurazioni diverse per gli ambienti di sviluppo, staging e produzione
- Includi domini localhost per test di sviluppo locale
- Documenta tutti i domini del sito che devono inserire nell'elenco Consentiti l'accesso per il tuo archivio
3. Monitoraggio e registrazione
- Imposta il monitoraggio del registro per i rifiuti del filtro Referrer
- Implementare la corretta gestione degli errori nel codice di invio del modulo
- Utilizzare gli strumenti per sviluppatori del browser durante il test
4. Documentazione e conoscenze del team
- Gestisci un Registro di sistema di tutti i domini del sito che utilizzano lo stesso archivio
- Formazione del team di sviluppo sui passaggi di risoluzione dei problemi
- Gestisce un elenco di controllo per l'impostazione di Edge Delivery Services Form
- inserire nell'elenco Consentiti Aggiorna ogni volta che vengono creati nuovi siti dagli archivi esistenti
Gestione del dominio del sito per le impostazioni di Repoless
Con le architetture Helix-5 e repoless, seguire queste linee guida:
Durante la creazione di nuovi siti
- Identificare il dominio del sito (ad esempio,
main--newsite--adobe.aem.live) - Aggiorna la configurazione CORS per includere il nuovo dominio
- Aggiorna il filtro Referrer per includere il nuovo dominio in
allow.hosts - Invio modulo di prova dal nuovo sito
- Documenta il nuovo dominio nel Registro di sistema del sito
Modelli di denominazione dei domini
- Schema standard:
{branch}--{site}--{owner}.aem.live - Ogni sito ottiene un dominio univoco anche quando si condivide lo stesso archivio
- È possibile utilizzare entrambi i domini
.aem.livee.aem.page
Gestione configurazione
- Utilizza voci di dominio specifiche in
allow.hostsper una maggiore sicurezza - Supplemento con schemi regex per una copertura più ampia
- Controlla e aggiorna regolarmente i elenchi Consentiti man mano che i siti vengono aggiunti o rimossi
Risorse aggiuntive
Argomenti correlati
Hai bisogno di ulteriore assistenza? Se riscontri ancora problemi dopo aver seguito questi passaggi di risoluzione dei problemi, contatta l'Assistenza clienti Adobe con:
- Messaggi di errore specifici
- Dettagli dell’ambiente AEM Cloud Service
- Tutti i domini del sito Edge Delivery Services che richiedono l'accesso per l'invio del modulo
- Voci di registro rilevanti dal momento dell’errore
Hai bisogno di ulteriore assistenza? Se riscontri ancora problemi dopo aver seguito questi passaggi di risoluzione dei problemi, contatta l'Assistenza clienti Adobe con:
- Messaggi di errore specifici
- Dettagli dell’ambiente AEM Cloud Service
- Informazioni sul dominio Edge Delivery Services
- Voci di registro rilevanti dal momento dell’errore