HTTP(S)
SolicitudesEl Audience Manager requiere el HTTP(S)
solicitudes de servidor a servidor para firmar digitalmente con fines de validez. Este documento describe cómo puede firmar HTTP(S)
solicitudes con claves privadas.
Utilizando una clave privada proporcionada por usted y compartida con Audience Manager, podemos firmar digitalmente el HTTP(S)
solicitudes enviadas entre IRIS y su servidor HTTP(S). Esto garantiza:
HTTP(S)
mensajes al socio.HTTP
, usted está protegido de un hombre en el ataque del medio donde los mensajes se distorsionan.IRIS tiene compatibilidad integrada para girar las claves sin tiempo de inactividad, como se muestra en la Rotación de la clave privada más abajo.
Para un HTTP(S)
destino servidor a servidor en tiempo real, póngase en contacto con su Audience Manager consultor y especifique:
HTTP(S)
encabezado que contendrá la firma generada (X-Signature en el encabezado de ejemplo siguiente).* 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)
mensaje que se enviará al socio.HTTP(S)
y la clave privada comunicada por el socio.HTTP(S)
solicitud al socio. Este mensaje contiene la firma y el mensaje real, tal como se ve en el ejemplo anterior.HTTP(S)
solicitud. Lee el cuerpo del mensaje y la firma recibida de IRIS.HMAC (Código de autenticación de mensaje basado en hash) es el método que utiliza IRIS para firmar mensajes. Las implementaciones y bibliotecas están disponibles básicamente en todos los lenguajes de programación. HMAC no tiene ataques de extensión conocidos. Vea un ejemplo en Java a continuación:
// 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=
El RFC de HMAC la implementación de hash es https://www.ietf.org/rfc/rfc2104.txt. Un sitio de prueba: https://asecuritysite.com/encryption/hmac (tenga en cuenta que debe convertir la codificación hex a base64).
Para rotar la clave privada, los socios deben comunicar la nueva clave privada a su Adobe Audience Manager consultor. La clave antigua se ha eliminado de Audience Manager y IRIS solo envía el nuevo encabezado de firma. Las llaves han sido giradas.
Para GET
destinos de tipo, el mensaje utilizado para la firma será el RUTA_SOLICITUD + CADENA DE CONSULTA (p. ej., /from-aam-s2s?sids=1,2,3). IRIS no tiene en cuenta el nombre de host o HTTP(S)
encabezados: se pueden modificar o configurar incorrectamente a lo largo de la ruta o se pueden registrar de forma incorrecta.
Para POST
destinos de tipo, el mensaje utilizado para la firma es el CUERPO DE SOLICITUD. De nuevo, se ignoran los encabezados u otros parámetros de solicitud.