Pagina integreren op iFrame met integratiesleutels (methode 1)
Je hebt op deze helppagina gezien dat je een type pagina kunt toevoegen en sleutels kunt vastleggen. Het doel van deze sleutels is om gegevens van de huidige gebruiker van InSite of OutSite op een veilige manier door te geven aan de partner.
In Profit kun je een publieke en geheime sleutel vastleggen; deze sleutels moeten bekend zijn bij beide partijen (AFAS klant en AFAS Partner). Doordat de combinatie tussen deze sleutels alleen bij deze partijen bekend is, kan bewezen worden dat ze elkaar kennen.
In het onderstaande voorbeeld wordt gebruik gemaakt van een InSite-site waar een gebruiker op ingelogd is. Zodra de gebruiker een integratiepagina opent, wordt de uitwisseling van gegevens tussen gebruiker en partner gestart.
Stap 1: Gebruiker opent integratiepagina
De gebruiker opent de integratiepagina.
Stap 2: Sleutels controleren
De InSite-pagina controleert of er een publieke en geheime sleutel klaarstaan
Stap 3: Token genereren
Als de pagina een publieke en een geheime sleutel bevat, dan wordt een token gegenereerd met de gegevens van de huidige gebruiker. Een token is een object met de gegevens van een gebruiker.
Stap 4: Token opslaan
De token wordt opgeslagen in Profit (en wordt nog niet verstuurd naar de partner).
Stap 5: InSite-pagina opbouwen en terugsturen naar gebruiker
De InSite-pagina wordt opgebouwd en teruggestuurd naar de gebruiker. De HTML van deze pagina bevat ook een frame die bestemd is voor de pagina van de partner.
Stap 6: Inhoud frame bij partner opvragen
De browser van de gebruiker ontvangt de InSite-pagina en zal een aanvraag doen bij de partner voor de inhoud van de frame.
Aan de URL van het frame zijn door InSite de volgende extra parameters toegevoegd:
partner.nl/pagina.html?
tokenurl=insite.nl/gettoken
code=T001
publickey=publ123
sessionid=YYYYY
Toelichting:
- tokenurl
De URL waarmee de partner de token op kan aanvragen.
Let op:
Vergeet niet deze URL te valideren tegen een eigen allowlist. Hierdoor ben je er zeker van dat je de secret niet naar een onbekende partij stuurt.
- code
Op basis van deze code kan achterhaald worden welke token de partner wil hebben.
- publickey
De publieke sleutel die in Profit vastgelegd is bij het type pagina.
- sessionid
Op basis van deze id. kan later gevalideerd worden of de huidige token nog geldig is voor de huidige gebruiker. Deze id. verandert zodra de gebruiker uitlogt, wisselt van organisatie of admin-modus (de)activeert.
- Content-Type van de post naar /integrationtoken
POST https://12345.afasinsite.nl/integrationtoken
- Content-Type: application/x-www-form-urlencoded
Stap 7: Geheime sleutel opvragen
Met de publieke sleutel kan de partner de geheime sleutel opzoeken in zijn eigen administratie.
Stap 8: POST-bericht maken
Met de gekregen en opgezochte informatie kan de partner een POST bericht maken. De inhoud van dit bericht is de geheime sleutel en de unieke code waarmee de token geïdentificeerd kan worden. Het bericht moet naar de token-URL gestuurd worden.
HTTP POST insite.nl/gettoken
secret= scr@
code= T001
Stap 9: Token en sleutels controleren
InSite zoekt op basis van het ontvangen bericht de token en controleert o.a. of de geheime sleutel correspondeert met de aangevraagde token.
Zodra de token is gevonden wordt deze uit de Profit-database verwijderd. De token kan dus maar één keer worden opgevraagd. Bovendien moet de token binnen 5 minuten opgevraagd worden, daarna wordt deze verwijderd.
Stap 10: Token naar partner sturen
Nadat de token is gevonden en is gevalideerd, stuurt InSite de token in JSON-formaat naar de partner.
De partner kan hierna de token opslaan zodat deze beschikbaar blijft voor de huidige sessie. Bij elke aanvraag van de integratie-pagina moet de partner controleren of de token nog geldig is voor de huidige sessie van de InSite-gebruiker.
Door de URL’s van de stylesheet en javascript op te nemen in de pagina kan een écht geïntegreerde ervaring voor de gebruiker gerealiseerd worden.
Direct naar
|