Landax API bruker OAuth-standarden for autentisering. For å autentisere trenger du fire parametere, det er applikasjonsnøkkel, klientnøkkel, brukernavn og passord.

Applikasjonsnøkkel og klientnøkkel

Disse brukes for å identifisere hvilken API-klient som brukes. Det er naturlig å ha en klient per integrasjon, så om man har integrasjon mot feks EG MainManager, så lager man en klient som heter EG MainManager.

Klienter opprettes på kontrollpanelet, under "API".

Når man oppretter en klient og lagrer, så vil den automatisk få tildelt en applikasjonsnøkkel og en klientnøkkel.

Brukernavn og passord

For å få tak i innhold fra systemet, trenger man også en brukerprofil som har tilganger. Denne oppretter du på samme måte som andre brukere i Landax. Brukeren bør settes som "Ren API-bruker". Slike brukere kan ikke logge på systemet direkte, kun via API, og teller ikke mot totalt antall brukere i systemet iht lisensen. Brukeren må ha alle rettigheter den trenger for at integrasjonen skal kunne gjøre det den skal.

Autentiseringsprosessen

Alle spørringer i API krever en authentication token som sendes med http header Authorization: Bearer TOKEN . Denne token får man tak i ved å spørre mot URL /authenticate/token. Denne ligger ikke under /api.

POST /authenticate/token?grant_type=password HTTP/1.1
Host: company.landax.no
Content-Type: application/json
Content-Length: ###

{
  "client_id": "applikasjonsnøkkel",
  "client_secret": "klientnøkkel",
  "username": "username",
  "password": "password"
}

som fører til følgende respons

HTTP/1.1 200 OK
Content-Type: application/json
..headers..

{ "access_token": "string", "expires_in": 123, "token_type": "string", "scope": "api", "refresh_token": "string" }

Denne access_token kan man deretter bruke for å hente data i API. Brukernavn, passord og nøklene skal ikke brukes senere.

Fornyelse av token

Variabelen expires_in sier noe om hvor lenge det er til access_token løper ut. Når dette nærmer seg, kan du bruke refresh_token for å hente ny access_token.

POST /authenticate/token?grant_type=refresh_token HTTP/1.1
Host: company.landax.no
Content-Type: application/json
Content-Length: ###

{
  "client_id": "applikasjonsnøkkel",
  "client_secret": "klientnøkkel",
  "refresh_token": "refresh_token"
}

Basic authentication

Det er også mulig å hoppe over dette og bruke Basic authentication vha Authorization: Basic TOKEN  der TOKEN er en base64 av brukernavn:passord. Men dette må åpnes fra Landax, og vil kun bli åpnet for i spesielle tilfeller som for PowerBI eller Excel, da det er regnet som usikkert og mangler også logging mot API-klient.

  • No labels