Errori di autenticazione allegati SAS BLOB campagna Azure
La preparazione della consegna di Adobe Campaign può non riuscire quando una consegna utilizza un file di archiviazione BLOB di Azure a cui fa riferimento un URL HTTPS con firma SAS. L’URL può funzionare correttamente in un browser o con curl, ma non riesce quando Campaign recupera l’allegato durante la preparazione della consegna.
Descrizione description
Durante la preparazione della consegna, Campaign tenta di scaricare un allegato dall’archiviazione BLOB di Azure e restituisce un errore di autenticazione HTTP 403:
La query HTTP ha restituito un ‘Server non è riuscito ad autenticare la richiesta.
Verificare che il formato del valore dell’intestazione Autorizzazione sia correttoinclusa la firma.’ errore di tipo.
*Il problema può verificarsi anche quando: L’URL BLOB di Azure funziona in un browser web.
- Lo stesso URL funziona con curl se citato correttamente.
- L’endpoint BLOB di Azure è stato inserito nell’elenco Consentiti a livello MID.
- Il problema si riproduce sia nella staging che nella produzione.
- L’URL SAS viene visualizzato correttamente formattato nei registri di Campaign.In alcune varianti, l’immissione manuale di un URL con escape XML può causare un errore HTTP 409, ad esempio PublicAccessNotPerallowed.L’impatto aziendale è che la preparazione della consegna non riesce prima dell’invio, bloccando le consegne e-mail che dipendono da allegati ospitati da Azure.## Risoluzione resolution**
Causa principale
Il problema è causato dalla nuova codifica dell’URL dell’allegato remoto da parte di Campaign prima dell’invio della richiesta HTTP.Gli URL SAS di Azure in genere contengono caratteri con codifica percentuale nella firma, ad esempio:%2B
%3DCampaign codifica nuovamente l’URL durante l’operazione di recupero degli allegati. Di conseguenza, i caratteri già codificati possono diventare con doppia codifica:Valore originale: %2B
Valore inviato: %252BAzure riceve quindi un valore di firma diverso da quello utilizzato per generare il token SAS. Poiché la firma non corrisponde più, Azure rifiuta la richiesta con un errore di autenticazione.La rappresentazione & e non è la causa sottostante quando Campaign elabora l’URL normalmente. La serializzazione XML può rappresentare una e commerciale come & e Campaign può annullarne l’escape. Tuttavia, l’immissione manuale di & nell’URL può causare un’interpretazione errata dei separatori di query e causare una risposta 409 invece dell’errore di autenticazione SAS previsto.La inserisce nell’elenco Consentiti dell’URL non risolve il problema perché la richiesta raggiunge Azure ma contiene una firma SAS modificata o non valida.L’indagine ha inoltre stabilito che l’utilizzo di un URL SAS Azure Blob remoto come allegato recuperato in modo dinamico rappresenta un gap di utilizzo non documentato per questo scenario di consegna.
Risoluzione
*L’approccio consigliato e supportato consiste nel scaricare il file BLOB di Azure sul server Campaign prima che venga preparata la consegna. Recupera il file all’interno del flusso di lavoro utilizzando un meccanismo di trasferimento file appropriato o un’attività JavaScript che chiama l’API Blob di Azure.
- Archivia il file sul server Campaign.
- Configura l’allegato di consegna in modo che faccia riferimento al percorso del file sul lato server locale.
- Esegui una consegna di test per verificare che il file sia disponibile durante la preparazione della consegna.In questo modo si evita il comportamento di ricodifica degli URL remoti di Campaign e si segue il modello di allegato locale al server.**