Campaign Azure Blob SAS附件身份验证失败

当投放使用由SAS签名的HTTPS URL引用的Azure Blob存储文件时,Adobe Campaign投放准备可能会失败。 URL可能会在浏览器中或使用curl成功运行,但在Campaign在投放准备期间检索附件时失败。

描述 description

在投放准备期间,Campaign尝试从Azure Blob存储下载附件并返回HTTP 403身份验证错误:

*HTTP查询返回了“服务器无法验证请求。
确保Authorization标头的值格式正确**包括签名。'***​类型错误。

*即使出现以下情况,也可能出现问题: Azure Blob URL可在Web浏览器中工作。

根本原因

该问题是由于Campaign在发送HTTP请求之前对远程附件URL进行了重新编码所导致。Azure SAS URL的签名中通常包含百分比编码的字符,例如:%2B
%3D
Campaign在附件提取操作期间再次对URL进行编码。 因此,已编码的字符可能会变为双重编码:原始值: %2B
发送值: %252B然后,Azure会从用于生成SAS令牌的签名值中接收其他签名值。 由于签名不再匹配,Azure会拒绝请求,但身份验证失败。&与&呈现不是Campaign正常处理URL时的根本原因。 XML序列化可以将&符号表示为,Campaign可以取消对它的转义。 但是,手动输入URL和URL可能会导致查询分隔符解释不正确,并导致409响应,而不是预期的SAS身份验证错误。URL列入允许列表不能解决此问题,因为请求到达Azure,但包含修改后的或无效的SAS签名。调查还确定,对于此投放方案,使用远程Azure Blob SAS URL作为动态检索的附件存在无文档的使用缺口。

分辨率

*推荐且支持的方法是,在准备投放之前将Azure Blob文件下载到Campaign服务器。 使用相应的文件传输机制或调用Azure Blob API的JavaScript活动,在工作流中检索文件。

recommendation-more-help
experience-cloud-kcs-help-kbarticles