Falhas de autenticação de anexo SAS do Campaign Azure Blob
A preparação do delivery do Adobe Campaign pode falhar quando um delivery usa um arquivo do Azure Blob Storage referenciado por um URL HTTPS assinado por SAS. O URL pode funcionar com sucesso em um navegador ou com curl, mas falha quando o Campaign recupera o anexo durante a preparação do delivery.
Descrição description
Durante a preparação do delivery, o Campaign tenta baixar um anexo do Armazenamento de blobs da Azure e retorna um erro de autenticação HTTP 403:
A consulta HTTP retornou uma falha do ‘Servidor’ ao autenticar a solicitação.
Verifique se o valor do cabeçalho de Autorização está formado corretamenteincluindo a assinatura.’ erro de tipo.
*O problema pode ocorrer mesmo quando: O URL do Azure Blob funciona em um navegador da Web.
- O mesmo URL funciona com curl quando citado corretamente.
- O endpoint do Azure Blob foi alterado no nível MID.
- O problema se reproduz no armazenamento temporário e na produção.
- O URL SAS aparece formatado corretamente nos logs do Campaign.Em algumas variações, inserir manualmente um URL com escape de XML pode resultar em um erro HTTP 409, como PublicAccessNotPermitted.O impacto nos negócios é que a preparação do delivery falha antes do envio, bloqueando deliveries de email que dependem de anexos hospedados na Azure.## Resolução resolution**
Causa raiz
O problema é causado pela recodificação do Campaign no URL do anexo remoto antes do envio da solicitação HTTP.Os URLs SAS do Azure geralmente contêm caracteres codificados por porcentagem na assinatura, como:%2B
%3DO Campaign codifica o URL novamente durante a operação de busca de anexos. Como resultado, os caracteres já codificados podem se tornar codificados duas vezes:Valor original: %2B
Valor enviado: %252BO Azure recebe um valor de assinatura diferente daquele usado para gerar o token SAS. Como a assinatura não corresponde mais, o Azure rejeita a solicitação com uma falha de autenticação.A representação & versus & não é a causa subjacente quando o Campaign processa o URL normalmente. A serialização XML pode representar um E comercial como & e o Campaign pode liberar a saída. No entanto, inserir manualmente e no URL pode fazer com que os separadores de consulta sejam interpretados incorretamente e pode levar a uma resposta 409 em vez do erro de autenticação SAS esperado.O incluir na lista de permissões de URL não resolve o problema porque a solicitação chega ao Azure, mas contém uma assinatura SAS modificada ou inválida.A investigação também determinou que usar um URL remoto do Azure Blob SAS como um anexo recuperado dinamicamente é uma lacuna de uso não documentada para esse cenário de entrega.
Resolução
*A abordagem recomendada e compatível é baixar o arquivo Azure Blob para o servidor do Campaign antes que o delivery seja preparado. Recupere o arquivo dentro do fluxo de trabalho usando um mecanismo de transferência de arquivos apropriado ou uma atividade do JavaScript que chame a API Blob do Azure.
- Armazene o arquivo no servidor do Campaign.
- Configure o anexo do delivery para fazer referência ao caminho de arquivo do lado do servidor local.
- Execute um delivery de teste para verificar se o arquivo está disponível durante a preparação do delivery.Isso evita o comportamento remoto de recodificação de URL do Campaign e segue o padrão de anexo local do servidor.**