Skip to main content

SCIM-referanse

Utleggsappen implementerer SCIM 2.0 for automatisk brukerprovisjonering fra eksterne identitetsleverandører (Entra ID, Okta, Google Workspace, JumpCloud m.fl.).

1. Endpoint

https://api.utlegg.app/organizations/{organization_handle}/scim

organization_handle finner du ved å logge inn på dashbordet på https://utlegg.app og inspisere URL-en — du ser den som https://utlegg.app/{organization_handle}.

Tilgjengelige underressurser

/ServiceProviderConfig
/Schemas
/ResourceTypes
/Users
/Users/{id}

2. Autentisering

Bruk en Personal Access Token (PAT) i Authorization-headeren:

Authorization: Bearer ua_...

Hent en PAT ved å følge instruksjonene i API-dokumentasjonen — eller se API og autentisering → PAT.

Brukeren som eier PAT-en må ha admin-rolle i organisasjonen for at SCIM-kall skal autoriseres.

3. ResourceTypes

Vi støtter /Users. /Groups støttes ikke for øyeblikket.

4. Schema

Vi tilbyr et /Schemas-endepunkt, men autodiscover i Entra ID fungerer kun for godkjente / publiserte SCIM-applikasjoner. Vi tilfredsstiller alle krav for å bli dette, men grunnet Microsoft sitt Secure Future Initiative (SFI) har de pauset alle godkjenninger på ubestemt tid — det er derfor uklart når vi blir publisert.

Bruk derfor oversikten under for manuell mapping i IdP-en din.

Core schema

urn:ietf:params:scim:schemas:core:2.0:User

AttributtTypeNotater
userNamestringrequired — brukes som e-post
activeboolean
name.givenNamestring
name.familyNamestring
addresses[type eq "work"].streetAddressstring
addresses[type eq "work"].regionstring
addresses[type eq "work"].postalCodestring
phoneNumbers[type eq "mobile"].valuestring
roles[primary eq "True"].valueenumUser eller Admin

Enterprise extension

urn:ietf:params:scim:schemas:extension:enterprise:2.0:User

AttributtTypeNotater
departmentstringFormat: [departmentCode] [departmentName] — f.eks. "42 Engineering". Oppretter ny avdeling hvis departmentCode ikke matcher en eksisterende.
employeeNumberstringMaks 20 tegn, tegnsett [a-zA-Z0-9-].
manager.valuestringSCIM-ID til leder.

ServiceProviderConfig

{
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:ServiceProviderConfig"],
"patch": { "supported": true },
"bulk": { "supported": false },
"filter": { "supported": true, "maxResults": 50 },
"changePassword": { "supported": false },
"sort": { "supported": true },
"etag": { "supported": true }
}

Filtre (RFC 7644)

Støttede operatorer: eq, ne, co, sw, ew, pr, gt, ge, lt, le. Maks 50 resultater per spørring.

GET /Users?filter=userName eq "kari@example.com"
GET /Users?filter=active eq true
GET /Users?filter=phoneNumbers[type eq "mobile"].value eq "+4799999999"
GET /Users?filter=name.familyName co "Hansen"

PATCH-semantikk (RFC 7644 §3.5.2)

{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
"Operations": [
{ "op": "replace", "path": "active", "value": false },
{ "op": "add", "path": "roles", "value": [{ "value": "Admin", "primary": true }] },
{ "op": "remove", "path": "phoneNumbers[type eq \"mobile\"]" }
]
}

Støttede op-verdier: add, remove, replace.

Brukerlivssyklus

IdP-handlingSCIM-kallEffekt i Utleggsappen
Opprett brukerPOST /UsersBruker + organisasjonstilknytning opprettes; sete reserveres
Endre attributterPATCH /Users/:idFelter oppdateres; rolleendring trer i kraft umiddelbart
DeaktiverPATCH ... active=false eller DELETESoft-delete; innlogging blokkeres; sete frigjøres ved neste fakturaperiode
ReaktiverPATCH ... active=trueBruker gjenopplives med samme ID

Matching av eksisterende brukere

Ved POST /Users matcher serveren på userName (e-post). Hvis en bruker allerede finnes i Utleggsappen med samme e-post, kobles SCIM-identiteten til den eksisterende kontoen i stedet for å opprette en duplikat.

Vanlige fallgruver

  • Departments-format må være [departmentCode] [departmentName] — bare tall eller bare tekst gir 400.
  • Roller fra grupper provisjoneres ikke — IdP-en din må sende roles-attributtet eksplisitt med primary: "True".
  • employeeNumber har strenge regler — maks 20 tegn, kun bokstaver, tall og bindestrek.
  • Manager må eksistere først — referanse til SCIM-ID som ikke finnes gir 400.
  • Bulk støttes ikke — provisjoner én og én.
  • Sete-konsekvenser: POST /Users bruker en lisens. Sjekk seteforbruk under Abonnement.

Konfigurasjonseksempler per IdP

Microsoft Entra ID

  • Tenant URL: https://api.utlegg.app/organizations/{organization_handle}/scim
  • Secret token: din PAT (ua_...)
  • Mappings: bruk default Entra-til-SCIM + custom mapping for enterprise.department (f.eks. Join(" ", [departmentCode], [departmentName])).

Okta

  • Connector: SCIM 2.0
  • Base URL: https://api.utlegg.app/organizations/{organization_handle}/scim/
  • API token: din PAT
  • Authentication mode: HTTP Header Authorization: Bearer ...
  • Provisioning Actions: Push New Users ✅, Push Profile Updates ✅, Push Groups ❌ (ikke støttet)

Google Workspace

Bruker SAML SSO + auto-provisioning via SCIM. Kontakt support for støttet konfigurasjon.

Se også