Xpression Manager/SSO: verschil tussen versies
(Nieuwe pagina aangemaakt met '= Introductie = Alle request naar xpressionmanager zijn POST request met XML content. De inhoud van het <data> element dient AES Rijndael 128 bits (in CBC mode) ver...') |
|||
(6 tussenliggende versies door dezelfde gebruiker niet weergegeven) | |||
Regel 1: | Regel 1: | ||
= | [[Bestand:Sso-uitleg.jpg|300px|right|sso-map]] | ||
=Automatisch inloggen met SSO= | |||
Door middel van SSO (sigle sign on) is het mogelijk om automatisch via een link ingelogd te worden.<br/> | |||
Om deze koppeling te realiseren gaat u als volgt te werk: | |||
==Stap 1 - vraag gegevens aan bij XM== | |||
Voordat een koppeling gemaakt kan worden dient men de SSO gegevens voor het betreffende bedrijf aan te vragen via de [[http://helpdesk.xpressionmanager.nl helpdesk.xpressionmanager.nl]] Deze zijn nodig bij stap 5.<br/> | |||
Voor de aanvraag zijn wij onderstaande gegevens nodig: | |||
* Licentienaam | |||
* Bedrijf uit bedrijvenlijst | |||
= | ==Stap 2 - vraag gegevens van de eindklant op== | ||
Om een gebruiker automatisch in te laten loggen dient deze te bestaan binnen het bedrijf waarvoor u deze SSO heeft aangevraagd.<br/> | |||
Er kan dan gekoppeld worden op bijvoorbeeld de naam en het e-mailadres (eventueel uit te breiden). | |||
<pre> | |||
In ons voorbeeld zouden de login gegevens bijvoorbeeld zijn: | |||
Naam: Jan ter Merwede | |||
E-mail: j.merwede@domein.nl | |||
</pre> | |||
==Stap 3 - koppel de organisatie structuur velden== | |||
In ons voorbeeld is het veld 'naam' en 'email' uit de organisatiestructuur leidend in de SSO koppeling<br/> | |||
Om dit kenbaar te maken ga je in de organisatiestructuur bij het veld naar het tabblad 'instellingen'<br/> | |||
daar zie je onderaan de pagina een veld staan met de naam "XML tagnaam (als dit veld via een import of SSO koppeling moet worden gevuld)"<br/> | |||
vul deze zowel in bij het veld waar de naam is staat met bijvoorbeeld 'name' en bij e-mail bijvoorbeeld 'email'<br/> | |||
[[Bestand:Wiki-sso-screen.png|250px|thumb|left|sso-preview]] | |||
<br clear="all"/> | |||
= | ==Stap 4 - xml voor de het verzoek maken== | ||
De gebruikersgegevens verwerk je daarna in een xml omschrijving zoals onderstaand: | |||
<pre><user> | |||
<name>Jan Merwede</name> | |||
<email>j.merwede@domein.nl</email> | |||
</user> | |||
</pre> | |||
==Stap 5 - configureer php code== | |||
[[Bestand:sso-config-setup.jpg]] | |||
<br clear="all"/> | |||
Zoals u in bovenstaande screenshot kan zien zijn er in de config enkele instellingen nodig.<br/> | |||
Deze heeft u in de eerste stap van Xpression Manager ontvangen.<br/> | |||
Het XML format met de gebruiker die aangemaakt is zal aangepast moeten worden naar bovenstaande formatering<br/> | |||
of u zult de gegevens in één stuk door moeten typen: | |||
<pre> | |||
$mijnstring = '<user><name>Jan Merwede</name><email>j.merwede@domein.nl</email></user>'; | |||
</pre> | |||
==Stap 6 - volledige PHP Code== | |||
<pre> | |||
<?php | |||
//////////////////////////////////////////////////////////////////////// | |||
// © 20149 Xpression Manager | |||
// helpdesk[@]xpressionmanager[.]nl | |||
// http://helpdesk.xpressionmanager.nl | |||
// SSO PHP SCRIPT V1.0 | |||
// GEGEVENS VOOR CONFIG WORDEN U VOORAF AANGELEVERD | |||
//////////////////////////////////////////////////////////////////////// | |||
/************* | |||
* CONFIG | |||
**************/ | |||
//Encryptiesleutel voor SSO | |||
$key = base64_encode("---code invulen---"); | |||
//Initialisatievector voor SSO | |||
$iv = "---code invulen---"; | |||
//Identifier voor SSO | |||
$identifier = "---code invulen---"; | |||
//Eigen url voor de SSO (overeen komend met de licentienaam of de eigen url van de licentie) | |||
$url = "---url invulen---"; | |||
//de te encrypten string (XML met gebruiker gegevens | |||
$mijnstring = '<user>'. | |||
'<name>---invulen---</name>'. | |||
'<email>---invulen---</email>'. | |||
'</user>'; | |||
/************* | |||
* ENDCONFIG | |||
**************/ | |||
//encrypt met AES 128 bits encryptie | |||
$cryptogram = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $mijnstring, MCRYPT_MODE_CBC,$iv); | |||
//omzetten naar een leesbaar/overdraagbaar formaat | |||
$result = base64_encode($cryptogram); | |||
//de XML request samenstellen | |||
$req = '<?xml version="1.0" encoding="UTF-8"?><request><identifier>'. $identifier .'</identifier><data>'. $result .'</data></request>'; | |||
//via CURL gaan we nu de request versturen | |||
$postData = array('xml' => $req); | |||
$ch =curl_init(); | |||
$options=array( | |||
CURLOPT_URL => $url.'/extern/generic_sso', | |||
CURLOPT_RETURNTRANSFER => true, | |||
CURLOPT_POST => true, | |||
CURLOPT_POSTFIELDS => $postData | |||
); | |||
curl_setopt_array($ch, $options); | |||
$output = curl_exec($ch); | |||
/************* | |||
* De output van de SSO is in XML. | |||
* Hieruit lezen wij de url en zetten wij in de variabele $userssourl | |||
**************/ | |||
$myXMLData ="<?xml version='1.0' encoding='UTF-8'?> ".$output; | |||
$xml = simplexml_load_string($output) or die("Error: fout in koppeling"); | |||
$userssourl=$xml->ssolink; | |||
/************* | |||
* PHP variabele $userssourl is voorzien van de SSO link. | |||
* Onderstaand is wordt deze als echo getoond. | |||
* Een optie is om de gebruiker automatisch door te zetten via: | |||
* header ("Location: $userssourl"); | |||
**************/ | |||
echo 'De url voor de sso koppeling is: http://'.$userssourl; | |||
/************* | |||
* Onderstaande is voor het automatisch doorverwijzen (de 5 staat voor het aantal seconden) | |||
**************/ | |||
echo 'U wordt doorgeschakeld, een klein moment alstublieft.'; | |||
header('Refresh: 5; URL=http://'.$userssourl); | |||
?> | |||
</pre> | |||
==Stap 7 - Link als output== | |||
Als bovenstaande correct is ingevoerd krijgt u als output een link terug zoals onderstaand: | |||
<pre> | |||
uw-url.domeinnaam.nl/extern/generic_sso_logon/1001?u=86hg682f7sfgafc8def7ac7dfhga6esgfsfg8f214 | |||
</pre> | |||
==F.A.Q. SSO== | |||
Indien u tegen fouten aanloopt ontvangen wij graag de code tegemoet zodat wij deze kunnen nakijken</br> | |||
Bekende problemen zijn: | |||
* CURL wordt niet ondersteund op uw server | |||
* XML veldnamen komen niet overeen met de organisatiestructuur | |||
* gebruiker bestaat niet binnen XM | |||
==Nieuwsbrief contacten importeren tbv Doelgroepbeheer== | |||
Voor het importeren van contacten in doelgroepbeheer is de werking hetzelfde.<br/> | |||
Enkel de URL en XML voor de data veranderen:<br/> | |||
<pre> | |||
URL: klantnaam.xpressionmanager.nl/extern/generic_contacts_import | |||
</pre> | |||
LET op: Contacten worden alleen aangemaakt, en niet overschreven of verwijderd. Hetzelfde geldt voor campagnes.<br/> | |||
Het XML verzoek ziet er als volgt uit: | |||
<pre> | |||
<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> | |||
</pre> |
Huidige versie van 12 nov 2014 om 14:30
Automatisch inloggen met SSO
Door middel van SSO (sigle sign on) is het mogelijk om automatisch via een link ingelogd te worden.
Om deze koppeling te realiseren gaat u als volgt te werk:
Stap 1 - vraag gegevens aan bij XM
Voordat een koppeling gemaakt kan worden dient men de SSO gegevens voor het betreffende bedrijf aan te vragen via de [helpdesk.xpressionmanager.nl] Deze zijn nodig bij stap 5.
Voor de aanvraag zijn wij onderstaande gegevens nodig:
- Licentienaam
- Bedrijf uit bedrijvenlijst
Stap 2 - vraag gegevens van de eindklant op
Om een gebruiker automatisch in te laten loggen dient deze te bestaan binnen het bedrijf waarvoor u deze SSO heeft aangevraagd.
Er kan dan gekoppeld worden op bijvoorbeeld de naam en het e-mailadres (eventueel uit te breiden).
In ons voorbeeld zouden de login gegevens bijvoorbeeld zijn: Naam: Jan ter Merwede E-mail: j.merwede@domein.nl
Stap 3 - koppel de organisatie structuur velden
In ons voorbeeld is het veld 'naam' en 'email' uit de organisatiestructuur leidend in de SSO koppeling
Om dit kenbaar te maken ga je in de organisatiestructuur bij het veld naar het tabblad 'instellingen'
daar zie je onderaan de pagina een veld staan met de naam "XML tagnaam (als dit veld via een import of SSO koppeling moet worden gevuld)"
vul deze zowel in bij het veld waar de naam is staat met bijvoorbeeld 'name' en bij e-mail bijvoorbeeld 'email'
Stap 4 - xml voor de het verzoek maken
De gebruikersgegevens verwerk je daarna in een xml omschrijving zoals onderstaand:
<user> <name>Jan Merwede</name> <email>j.merwede@domein.nl</email> </user>
Stap 5 - configureer php code
Zoals u in bovenstaande screenshot kan zien zijn er in de config enkele instellingen nodig.
Deze heeft u in de eerste stap van Xpression Manager ontvangen.
Het XML format met de gebruiker die aangemaakt is zal aangepast moeten worden naar bovenstaande formatering
of u zult de gegevens in één stuk door moeten typen:
$mijnstring = '<user><name>Jan Merwede</name><email>j.merwede@domein.nl</email></user>';
Stap 6 - volledige PHP Code
<?php //////////////////////////////////////////////////////////////////////// // © 20149 Xpression Manager // helpdesk[@]xpressionmanager[.]nl // http://helpdesk.xpressionmanager.nl // SSO PHP SCRIPT V1.0 // GEGEVENS VOOR CONFIG WORDEN U VOORAF AANGELEVERD //////////////////////////////////////////////////////////////////////// /************* * CONFIG **************/ //Encryptiesleutel voor SSO $key = base64_encode("---code invulen---"); //Initialisatievector voor SSO $iv = "---code invulen---"; //Identifier voor SSO $identifier = "---code invulen---"; //Eigen url voor de SSO (overeen komend met de licentienaam of de eigen url van de licentie) $url = "---url invulen---"; //de te encrypten string (XML met gebruiker gegevens $mijnstring = '<user>'. '<name>---invulen---</name>'. '<email>---invulen---</email>'. '</user>'; /************* * ENDCONFIG **************/ //encrypt met AES 128 bits encryptie $cryptogram = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $mijnstring, MCRYPT_MODE_CBC,$iv); //omzetten naar een leesbaar/overdraagbaar formaat $result = base64_encode($cryptogram); //de XML request samenstellen $req = '<?xml version="1.0" encoding="UTF-8"?><request><identifier>'. $identifier .'</identifier><data>'. $result .'</data></request>'; //via CURL gaan we nu de request versturen $postData = array('xml' => $req); $ch =curl_init(); $options=array( CURLOPT_URL => $url.'/extern/generic_sso', CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_POSTFIELDS => $postData ); curl_setopt_array($ch, $options); $output = curl_exec($ch); /************* * De output van de SSO is in XML. * Hieruit lezen wij de url en zetten wij in de variabele $userssourl **************/ $myXMLData ="<?xml version='1.0' encoding='UTF-8'?> ".$output; $xml = simplexml_load_string($output) or die("Error: fout in koppeling"); $userssourl=$xml->ssolink; /************* * PHP variabele $userssourl is voorzien van de SSO link. * Onderstaand is wordt deze als echo getoond. * Een optie is om de gebruiker automatisch door te zetten via: * header ("Location: $userssourl"); **************/ echo 'De url voor de sso koppeling is: http://'.$userssourl; /************* * Onderstaande is voor het automatisch doorverwijzen (de 5 staat voor het aantal seconden) **************/ echo 'U wordt doorgeschakeld, een klein moment alstublieft.'; header('Refresh: 5; URL=http://'.$userssourl); ?>
Stap 7 - Link als output
Als bovenstaande correct is ingevoerd krijgt u als output een link terug zoals onderstaand:
uw-url.domeinnaam.nl/extern/generic_sso_logon/1001?u=86hg682f7sfgafc8def7ac7dfhga6esgfsfg8f214
F.A.Q. SSO
Indien u tegen fouten aanloopt ontvangen wij graag de code tegemoet zodat wij deze kunnen nakijken
Bekende problemen zijn:
- CURL wordt niet ondersteund op uw server
- XML veldnamen komen niet overeen met de organisatiestructuur
- gebruiker bestaat niet binnen XM
Nieuwsbrief contacten importeren tbv Doelgroepbeheer
Voor het importeren van contacten in doelgroepbeheer is de werking hetzelfde.
Enkel de URL en XML voor de data veranderen:
URL: klantnaam.xpressionmanager.nl/extern/generic_contacts_import
LET op: Contacten worden alleen aangemaakt, en niet overschreven of verwijderd. Hetzelfde geldt voor campagnes.
Het XML verzoek ziet er als volgt uit:
<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>