HTTP(S)
-AnforderungenAudience Manager erfordert, dass die HTTP(S)
-Server-zu-Server-Anforderungen für ihre Gültigkeit digital signiert werden. In diesem Dokument wird beschrieben, wie Sie HTTP(S)
-Anforderungen mit privaten Schlüsseln signieren können.
Mithilfe eines von Ihnen bereitgestellten und für Audience Manager freigegebenen privaten Schlüssels können wir die HTTP(S)
-Anforderungen digital signieren, die zwischen IRIS und Ihrem HTTP(S)-Server gesendet werden. Dadurch wird sichergestellt:
HTTP(S)
Nachrichten an den Partner senden.HTTP
werden Sie vor einem Mann im mittleren Angriff geschützt, wo die Nachrichten verzerrt werden.IRIS verfügt über integrierte Unterstützung zum Drehen der Schlüssel mit null Ausfallzeiten, wie im Abschnitt Drehen des privaten Suchbegriffs unten gezeigt.
Wenden Sie sich für ein HTTP(S)
-Echtzeit-Server-zu-Server-Ziel an Ihren Audience Manager-Berater und geben Sie Folgendes an:
HTTP(S)
-Kopfzeile, die die generierte Signatur enthält (X-Signatur in der Beispielüberschrift unten).* Connected to partner.website.com (127.0.0.1) port 80 (#0)
> POST /webpage HTTP/1.1
> Host: partner.host.com
> Accept: */*
> Content-Type: application/json
> Content-Length: 20
> X-Signature: +wFdR/afZNoVqtGl8/e1KJ4ykPU=
POST message content
HTTP(S)
Nachricht, die an den Partner gesendet werden soll.HTTP(S)
Nachricht und dem vom Partner mitgeteilten privaten Schlüssel basiert.HTTP(S)
Anfrage an den Partner. Diese Meldung enthält die Unterschrift und die eigentliche Meldung, wie im Beispiel oben dargestellt.HTTP(S)
-Anforderung. Es liest den Nachrichtentext und die Signatur, die von IRIS empfangen wurde.HMAC (Hash-basierter Authentifizierungscode) ist die Methode, die IRIS zum Signieren von Nachrichten verwendet wird. Implementierungen und Bibliotheken stehen grundsätzlich in jeder Programmiersprache zur Verfügung. HMAC hat keine bekannten Erweiterungsangriffe. Siehe ein Beispiel in Java unten:
// Message to be signed.
// For GET type HTTP(S) destinations, the message used for signing will be the REQUEST_PATH + QUERY_STRING
// For POST type HTTP(S) destinations, the message used for signing will be the REQUEST_BODY.
// String getData = "/from-aam-s2s?sids=1,2,3";
String postData = "POST message content";
// Algorithm used. Currently supported: HmacSHA1, HmacSHA256, HmacMD5.
String algorithm = "HmacSHA1";
// Private key shared between the partner and Adobe Audience Manager.
String key = "sample_partner_private_key";
// Perform signing.
SecretKeySpec signingKey = new SecretKeySpec(key.getBytes(), algorithm);
Mac mac = Mac.getInstance(algorithm);
mac.init(signingKey);
byte[] result = mac.doFinal(postData.getBytes());
String signature = Base64.encodeBase64String(result).trim();
// signature = +wFdR/afZNoVqtGl8/e1KJ4ykPU=
Die RFC für die Hash-Implementierung von HMAC lautet https://www.ietf.org/rfc/rfc2104.txt. Eine Testsite: https://asecuritysite.com/encryption/hmac (Beachten Sie, dass die Hex-Kodierung in base64 konvertieren muss).
Um den privaten Schlüssel zu drehen, müssen Partner den neuen privaten Schlüssel an ihren Adobe Audience Manager-Berater weiterleiten. Der alte Schlüssel wird von Audience Manager entfernt und IRIS sendet nur den neuen Signaturheader. Die Schlüssel wurden gedreht.
Bei Zielen vom Typ GET
wird die Signaturmeldung REQUEST_PATH + ABFRAGE STRING (z. B. /from-aam-s2s?sids=1,2,3). IRIS berücksichtigt nicht den Hostnamen oder die HTTP(S)
-Kopfzeilen - diese können geändert/falsch konfiguriert werden oder falsch gemeldet werden.
Bei Zielen vom Typ POST
ist die zum Signieren verwendete Meldung der ANFORDERUNGSKÖRPER. Auch hier werden Kopfzeilen oder andere Anforderungsparameter ignoriert.