Campaign Azure Blob SAS-Anhangsauthentifizierungsfehler
Die Adobe Campaign-Versandvorbereitung kann fehlschlagen, wenn ein Versand eine Azure Blob Storage-Datei verwendet, die von einer SAS-signierten HTTPS-URL referenziert wird. Die URL kann in einem Browser oder mit cURL erfolgreich sein, schlägt jedoch fehl, wenn Campaign während der Versandvorbereitung den Anhang abruft.
Beschreibung description
Während der Versandvorbereitung versucht Campaign, eine Anlage aus dem Azure Blob-Speicher herunterzuladen, und gibt einen HTTP 403-Authentifizierungsfehler zurück:
Die HTTP-Abfrage hat den Fehler „Server konnte die Anfrage nicht authentifizieren.
Vergewissern Sie sich, dass der Wert des Autorisierungs-Headers einschließlich Signatur korrekt formatiert ist Typfehler.
*Das Problem kann auch auftreten, wenn: Die Azure Blob-URL funktioniert in einem Webbrowser.
- Dieselbe URL funktioniert mit cURL, wenn sie in Anführungszeichen gesetzt wird.
- Der Azure-Blob-Endpunkt wurde auf MID-Ebene auf die Zulassungsliste gesetzt.
- Das Problem tritt sowohl in der Staging- als auch in der Produktionsumgebung auf.
- Die SAS-URL erscheint in den Campaign-Protokollen korrekt formatiert.In einigen Varianten kann die manuelle Eingabe einer URL mit XML-Escape-Zeichen einen HTTP 409-Fehler verursachen, z. B. PublicAccessNotPermitted.Die Geschäftsauswirkungen sind, dass die Versandvorbereitung vor dem Versand fehlschlägt und E-Mail-Sendungen blockiert werden, die von in Azure gehosteten Anhängen abhängen.## Lösung resolution**
Ursache
Das Problem wird verursacht, wenn Campaign die Remote-Anhang-URL vor dem Senden der HTTP-Anfrage neu codiert.Azure SAS-URLs enthalten in der Regel Prozentzeichen in der Signatur, z. B.:%2B
%3dCampaign kodiert die URL während des Abrufs des Anhangs erneut. Daher können die bereits kodierten Zeichen doppelt kodiert werden %2B
Gesendeter Wert: %252BAzure erhält dann einen anderen Signaturwert als den, der zum Generieren des SAS-Tokens verwendet wird. Da die Signatur nicht mehr übereinstimmt, lehnt Azure die Anfrage mit einem Authentifizierungsfehler ab.Die Darstellung und im Vergleich zu und ist nicht die zugrunde liegende Ursache, wenn Campaign die URL normal verarbeitet. Die XML-Serialisierung kann ein kaufmännisches Und-Zeichen darstellen, und Campaign kann es mit Escape-Zeichen versehen. Die manuelle Eingabe von und in die URL kann jedoch dazu führen, dass die Abfragetrennzeichen falsch interpretiert werden und zu einer 409-Antwort anstelle des erwarteten SAS-Authentifizierungsfehlers führen.Die URL-Zulassungsauflistung behebt das Problem nicht, da die Anfrage Azure erreicht, aber eine geänderte oder ungültige SAS-Signatur enthält.Die Untersuchung ergab außerdem, dass die Verwendung einer Remote-Azure Blob SAS-URL als dynamisch abgerufener Anhang eine nicht dokumentierte Nutzungslücke für dieses Bereitstellungsszenario darstellt.
Lösung
*Es wird empfohlen und unterstützt, die Azure-Blob-Datei vor der Versandvorbereitung auf den Campaign-Server herunterzuladen. Rufen Sie die Datei innerhalb des Workflows mithilfe eines geeigneten Dateiübertragungsmechanismus oder einer JavaScript-Aktivität ab, die die Azure-Blob-API aufruft.
- Speichern Sie die Datei auf dem Campaign-Server.
- Konfigurieren Sie den Versandanhang so, dass er auf den lokalen Server-seitigen Dateipfad verweist.
- Führen Sie einen Versandtest durch, um zu überprüfen, ob die Datei während der Versandvorbereitung verfügbar ist.Dadurch wird das Remotecodier-Verhalten der URLs von Campaign vermieden und das serverlokale Anhangsmuster wird befolgt.**