Xpression Manager/SSO: verschil tussen versies

Uit XpressionManager
Naar navigatie springen Naar zoeken springen
Regel 35: Regel 35:
       <data>
       <data>
         <user>
         <user>
             <email>niek@xpressionmanager.nl</email>
             <email>gebruiker@xpressionmanager.nl</email>
             <name>Niek Vugteveen</name>
             <name>Jan ter Merwede</name>
         <user>
         <user>
         <campaign>
         <campaign>

Versie van 16 jul 2013 09:15

Introductie

Alle request naar xpressionmanager zijn POST request met XML content. De inhoud van het element dient AES Rijndael 128 bits (in CBC mode) versleuteld te worden met een key en een initialisatie vector (VI), die door Xpression worden aangeleverd. Tesamen met de identifier vormen zij de authenticatiebasis.

Een XML request heeft in de basis onderstaande structuur.

<?xml version="1.0" encoding="utf-8"?>
     <request>
        <identifier>Identifier</identifier>
     
        Encypted XML data
     
     </request>

Single Sign On verzoek uitvoeren

 URL: klantnaam.xpressionmanager.nl/extern/generic_sso

Een SSO verzoek dient naast de standaard structuur een <user> element met een <email> en een <naam> element te bevatten. Voor uw gemak is onderstaande data niet versleuteld.

<?xml version="1.0" encoding="utf-8"?>
     <request>
        <identifier>Identifier</identifier>
     
        <user>
           <email>mail@xpressionmanager.nl</email>
           <name>Jan ter Merwede</name>
        <user>
     
     </request>

Nieuwsbrief contacten importeren

 URL: klantnaam.xpressionmanager.nl/extern/generic_contacts_import

Contacten worden alleen aangemaakt, en niet overschreven of verwijderd. Hetzelfde geldt voor campagnes. Het verzoek ziet er zo uit:

<?xml version="1.0" encoding="utf-8"?>
     <request>
        <identifier>Identifier</identifier>
     
        <user>
           <email>gebruiker@xpressionmanager.nl</email>
           <name>Jan ter Merwede</name>
        <user>
        <campaign>
           <title>Mijn campagne</title>
           <contacts>
             <contact>
                <contactemail>ontvanger1@voorbeeld.nl</contactemail>
             </contact>
             <contact>
                <contactemail>ontvanger2@voorbeeld.nl</contactemail>
             </contact>
           </contacts>
        </campaign>
     
     </request>

Encryptievoorbeeld

Zoals gezegd moet bij ieder request de inhoud van het element worden versleuteld. Je ontvangt van Xpression 3 dingen: een identifier, een vi en een key. In onderstaand PHP voorbeeld zie je hoe je deze kunt gebruiken om data te versleutelen te maken.

 //deze functie is nodig om de encryptie compatible te maken met de openssl implementatie van ruby
 function pkcs5_pad ($text, $blocksize)
 {
  $pad = $blocksize - (strlen($text) % $blocksize);
  return $text . str_repeat(chr($pad), $pad);
 }
 
 $cleartext = pkcs5_pad("hier komt de string", 16);
 $key = base64_decode("hier de key");
 $iv = base64_decode("hier de iv");
 
 $cryptogram = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $cleartext, MCRYPT_MODE_CBC, $iv);
 $result = base64_encode($cryptogram);