Brukersynkronisering Sync API (Sync API) er et API som lar eksterne målsystemer holde seg kontinuerlig oppdatert på bruker- og gruppedata fra Fiks-plattformen.
Sync API er optimalisert for å hente kun endringer (delta) siden forrige synkronisering. Dette reduserer datamengden og sikrer at målsystemet alltid er synkront med kilden.
Diagrammet under viser hvordan data flyter fra organisasjonens Identity Provider (IdP) til målsystemet via Fiks-plattformen.
Sync API bruker en cursor (syncToken) som klienten må ta vare på mellom hvert kall. Dette tokenet inneholder informasjon om hvor langt klienten har kommet i synkroniseringen, men ikke på et format som klienten skal parse. Det eneste klienten skal gjøre er å ta vare på tokenet, og sende det med på neste request. Dette sørger for at klienten kun får de endringene som har skjedd siden forrige synkronisering.
Hvordan det fungerer:
syncToken. Dette initierer en full synkronisering fra starten.events), et nytt syncToken og et hasMore-flagg.hasMore er true, bør klienten kalle endepunktet på nytt umiddelbart for å hente neste batch.For å bruke API-et må målsystemet være registrert og autorisert i Fiks Forvaltning.
Sync API er tilgjengelig på følgende adresser:
https://api.fiks.ks.no/brukersynkronisering/sync/api/v1/https://api.fiks.test.ks.no/brukersynkronisering/sync/api/v1/Synkronisering mot Sync API autentiseres med Fiks-Porten.
(Mer informasjon om teknisk oppsett av integrasjon og sikkerhet i Fiks-Porten kommer).
API-et tilbyr batch-endepunkter for brukere og grupper, samt mulighet for å hente den fulle tilstanden til en enkelt ressurs. Alle endepunkter bruker følgende sti-parametere:
fiksOrgId: Kommunens eller organisasjonens unike ID (UUID) på Fiks-plattformenmaalSystem: En unik id som identifiserer målsystemet (felles for alle eventuelle instanser av målsystemet)Endepunktene for brukere og grupper er ikke synkronisert med hverandre. Dette betyr at en gruppe kan referere til et medlem som ennå ikke er mottatt via /brukere. Klienter må implementere robust logikk for å håndtere slike midlertidige avvik.
Disse endepunktene brukes for å hente endringer over tid ved bruk av syncToken.
GET /brukersynkronisering/sync/api/v1/{fiksOrgId}/{maalSystem}/brukere
Viktige Query-parametre: syncToken, limit (default 100).
Eksempel på respons:
{
"events": [
{
"id": "2ceb6af3-0f0a-4fa9-b05c-28b6865451b3",
"changeType": "sync",
"timestamp": "2023-10-01T12:00:00Z",
"resource": {
"id": "2ceb6af3-0f0a-4fa9-b05c-28b6865451b3",
"userName": "ola.nordmann@kommune.no",
"displayName": "Ola Nordmann",
"active": true,
"fiks": { "identityNumber": "12345678901" }
}
}
],
"syncToken": "eyJhbGciOiJIUzI1NiJ9...",
"hasMore": false
}
GET /brukersynkronisering/sync/api/v1/{fiksOrgId}/{maalSystem}/grupper
Viktige Query-parametre: syncToken, limit, maxGroupSize (default 100).
Bruk disse endepunktene for å hente den nyeste og fullstendige tilstanden for en spesifikk ressurs.
GET /.../bruker/{brukerId}GET /.../gruppe/{gruppeId} (Returnerer fullstendig gruppe inkludert alle medlemmer).Sync API opererer med to hovedtyper endringer:
sync: Brukeren eller gruppen er opprettet eller endret. Feltet resource inneholder den oppdaterte tilstanden.delete: Brukeren eller gruppen er slettet fra kildesystemet. Feltet resource vil da være null.Hvis en gruppe har svært mange medlemmer (overstiger maxGroupSize), vil den ikke inkluderes i sin helhet i batch-responsen for å unngå for store payloads.
requiresSeparateFetch vil da være true og resource vil være null.Sync API støtter automatisk beriking av brukere med fødselsnummer (under feltet fiks.identityNumber).
Merk: Hvis en brukers fødselsnummer blir lagt til eller oppdatert i etterkant, vil dette trigge en ny sync-hendelse i API-et, selv om ingen andre SCIM-data har endret seg.
Når man integrerer mot Sync API-et, er det viktig å følge disse mønstrene:
limit=100, kan du motta færre hendelser selv om hasMore er true.hasMore-flagget for å avgjøre om den skal fortsette å polle, uavhengig av antall hendelser i responsen.200 OK: Alt OK.400 Bad Request: Ugyldig forespørsel (f.eks. feil format på token).401 Unauthorized: Manglende eller ugyldig autentisering.404 Not Found: Ressurs ikke funnet, eller målsystemet er ikke konfigurert.410 Gone: Viktig! Ditt syncToken er utdatert (f.eks. ved kildebytte). Klienten må kaste tokenet og starte en ny full synkronisering (kall uten token).410 som angir hvorfor synkroniseringen må startes på nytt, f.eks dersom kilden som var koblet til målsystemet er byttet.