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.

Inhoud van de token

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

  1. Integratiepagina toevoegen in InSite en OutSite
  2. Type pagina toevoegen voor iFrame
  3. Methode 1: Pagina integreren op iFrame met integratiesleutels
  4. Methode 2: Pagina integreren op iFrame zonder integratiesleutels
  5. Veelgestelde vragen