Skip to content

SCIM 2.0-referanse

Teknisk referanse for identitetsforvaltningsteam som kobler en IdP (Microsoft Entra ID, SailPoint IdentityIQ, …) til mTime: hvilke SCIM 2.0-attributter og -operasjoner mTime støtter, og hva hver av dem gjør.

Oversikt

Basis-URLhttps://<your mTime host>/api/scim/v2
StandarderRFC 7643 (skjema), RFC 7644 (protokoll)
AutentiseringBearer-token: en API-nøkkel for arbeidsområdets provisjonerings-servicebruker (se Sett opp SCIM med Microsoft Entra ID)
Medietypeapplication/scim+json
Ressurser/Users, /Groups
FeilSCIM-feilsvar (RFC 7644 §3.12)

Hva SCIM styrer, og hva det ikke styrer

mTime skiller brukeren (pålogging, roller, tilgang) fra den ansatte og vedkommendes ansettelser:

Bruker → Ansatt → n ansettelser

SCIM styrer brukeren: hvem som kan logge på, under hvilket navn og med hvilke roller. Ansatte og ansettelser — organisasjonsenhet, leder, ansettelsesvilkår, arbeidstidsnorm, start- og sluttdato — er daterte data som mTime beregner ut fra, og de kommer fra HR-integrasjonen din, ikke fra SCIM. En SCIM-bruker knyttes til sin ansatte via externalId (se Slik provisjoneres brukere).

Derfor støtter ikke mTime Enterprise User Extension: department, manager og employeeNumber er enkeltverdier uten gyldighetsdato, mens en ansatt i mTime kan ha flere daterte ansettelser.

Brukere

Attributter

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

AttributtLeseOppretteOppdatereMerknader
id✅——Tildeles av mTime, kan ikke endres
externalId✅✅✅Stabil nøkkel (f.eks. ansattnummer), unik per arbeidsområde; et duplikat gir 409 uniqueness. Kan kobles til et ansattattributt for å knytte brukeren til den ansatte
userName✅✅⚠️Brukerens e-postadresse. Kan bare endres så lenge brukeren ikke har aktivert invitasjonen sin
emails✅✅⚠️Primærverdien (eller den første) brukes; samme regel som for userName. Returneres som én primær e-postadresse
name.givenName, name.familyName❌✅⚠️Slås sammen til det fulle navnet — bare når begge sendes samtidig (i ett name-objekt eller begge stiene i samme PATCH). mTime lagrer ett fullt navn og deler det aldri opp, så en PATCH med bare det ene ignoreres. Ved oppretting og PUT brukes et fornavn eller etternavn alene bare når det ikke finnes noe name.formatted eller displayName. Returneres ikke ved lesing: navnet kommer tilbake som name.formatted
name.formatted✅✅⚠️Fullt navn; går foran fornavn og etternavn. En endring har ingen synlig effekt for en bruker som er knyttet til en ansatt, med mindre IdP-en gir de ansatte navn — se Hvilket navn SCIM setter
displayName✅✅⚠️Fullt navn. Samme regel for endringer som name.formatted
active✅—✅false suspenderer brukeren; true reaktiverer
meta.resourceType, meta.location✅——

Alle andre Core User-attributter (nickName, title, phoneNumbers, addresses, password, …) og Enterprise User Extension (urn:ietf:params:scim:schemas:extension:enterprise:2.0:User) støttes ikke: de ignoreres ved oppretting og oppdatering og returneres aldri.

Hvilket navn SCIM setter

mTime viser ett navn for en person: den ansattes navn når brukeren er knyttet til en ansatt, ellers brukerens navn.

  • En bruker som er knyttet til en ansatt, viser den ansattes navn, som HR-integrasjonen din vedlikeholder. Som standard oppdaterer ikke SCIM en eksisterende ansatt, så et navn sendt via SCIM har ingen synlig effekt for denne brukeren. Er Bruk navn fra identitetsleverandøren som ansattnavn slått på, skriver hver oppretting, PUT eller PATCH med et navn også navnet til den tilknyttede ansatte — se Bruke identitetsleverandørens navn på ansatte.
  • En bruker uten ansatt (f.eks. et utkast) viser brukerens eget navn. SCIM setter det ved oppretting og kan endre det til personen aktiverer invitasjonen sin; deretter følger det navnet på personens egen mTime-konto. Oppretter en rolle senere personens ansattpost, får den ansatte dette navnet fra start.

Endre navnet i HR-systemet for å gi en ansatt nytt navn — eller i IdP-en hvis den innstillingen er slått på.

Operasjoner

OperasjonStøttetVirkemåte
POST /Users✅Oppretter brukeren som invitert og sender invitasjons-e-posten. En e-postadresse er påkrevd (emails, eller userName når den er en adresse). Knytter brukeren til en eksisterende ansatt når en matcher; ellers opprettes et utkast uten rolle, uten ansatt og uten invitasjon. 409 hvis externalId eller den ansatte allerede er i bruk
GET /Users/{id}✅
GET /Users?filter=…⚠️Bare attribute eq "value", på userName eller externalId. Andre attributter eller operatorer gir 400. Kan kombineres med paginering
GET /Users (uten filter)✅Alle brukere, side for side — se Paginering
PUT /Users/{id}✅Bruker de støttede attributtene ovenfor
PATCH /Users/{id}⚠️add og replace på active, userName, emails, displayName, name (objekt), name.givenName, name.familyName, name.formatted, externalId, eller uten sti (delvis ressurs). En sti kan ha skjemaprefikset (urn:ietf:params:scim:schemas:core:2.0:User:name.givenName). remove og andre stier ignoreres
DELETE /Users/{id}✅Sletter brukerkontoen (myk sletting) og avslutter alle økter. Den ansatte og historikken bevares. Returnerer 204

Brukere med rollen owner kan ikke endres eller slettes via SCIM (403).

Deaktivere eller slette?

PATCH active=falseDELETE
Kan logge påNei — øktene avsluttes umiddelbartNei — øktene avsluttes umiddelbart
BrukerkontoBeholdes, status suspendertSlettes (myk sletting)
Ansatt, tidsregistreringer, godkjenningerBeholdesBeholdes
TilbakekomstPATCH active=true gjenoppretter den samme brukerenEn ny POST oppretter en ny bruker, knyttet til den samme ansatte

Grupper

Grupper tilsvarer mTime-roller: IdP-en bestemmer om en gruppe finnes og hvem som er medlem, mTime-administratorene bestemmer rollens tillatelser. Se Slik blir grupper til roller.

Attributter

Skjema urn:ietf:params:scim:schemas:core:2.0:Group.

AttributtLeseOppretteOppdatereMerknader
id✅——Tildeles av mTime
externalId✅✅✅
displayName✅✅✅Knyttes til rollen med samme navn, eller oppretter en tom egendefinert rolle. Gis gruppen nytt navn, får rollen det også
members (value, display)✅✅✅value er brukerens SCIM-id

Operasjoner

OperasjonStøttetVirkemåte
POST /Groups✅Knyttes til rollen eller oppretter den
GET /Groups/{id}✅
GET /Groups?filter=…⚠️Bare attribute eq "value", på displayName eller externalId
GET /Groups (uten filter)✅Alle roller som styres av IdP-en, side for side — se Paginering
PUT /Groups/{id}✅Erstatter navn og medlemmer
PATCH /Groups/{id}✅add, replace og remove på members (inkludert members[value eq "…"]) og displayName
DELETE /Groups/{id}✅Fjerner rollen fra medlemmene. Selve rollen slettes bare hvis ingen administrator noen gang har konfigurert den

Paginering

GET /Users og GET /Groups støtter indeksbasert paginering (RFC 7644 §3.4.2.4), med eller uten filter.

ParameterStandardMerknader
startIndex11-basert posisjon for det første resultatet. Verdier under 1 regnes som 1
count200Resultater per side, høyst 200. count=0 returnerer bare totalResults

Svaret angir totalResults (alle treff), startIndex og itemsPerPage (resultatene på denne siden). Hent neste side med startIndex + itemsPerPage til du har totalResults resultater. Resultatene kommer i fast rekkefølge, så sidene verken hopper over eller gjentar resultater, med mindre brukere eller grupper opprettes eller slettes underveis.

Discovery-endepunkter

Alle tre krever det samme bearer-tokenet som de andre SCIM-endepunktene.

EndepunktInnhold
GET /ServiceProviderConfigFunksjoner, vist nedenfor
GET /SchemasCore-skjemaene User og Group, begrenset til attributtene ovenfor
GET /ResourceTypesUser (/Users) og Group (/Groups), uten skjemautvidelser
{
  "schemas": ["urn:ietf:params:scim:schemas:core:2.0:ServiceProviderConfig"],
  "documentationUri": "https://help.mtime.app",
  "patch": { "supported": true },
  "bulk": { "supported": false, "maxOperations": 0, "maxPayloadSize": 0 },
  "filter": { "supported": true, "maxResults": 200 },
  "changePassword": { "supported": false },
  "sort": { "supported": false },
  "etag": { "supported": false },
  "authenticationSchemes": [
    {
      "type": "oauthbearertoken",
      "name": "OAuth Bearer Token",
      "description": "Bearer token issued for the workspace's provisioning service user",
      "primary": true
    }
  ]
}

Feilsøking

ProblemLøsning
400 Unsupported filterBruk eq på userName eller externalId (brukere) eller displayName eller externalId (grupper)
409 uniqueness ved opprettingEn annen bruker har allerede denne externalId, eller den ansatte har allerede en bruker. Slå opp brukeren med filter=externalId eq "…" og oppdater den i stedet
Et endret fornavn eller etternavn vises ikkemTime lagrer ett fullt navn og deler det aldri opp, så det kan ikke endre bare den ene delen. Send givenName og familyName sammen i samme PATCH, eller send name.formatted eller displayName
En navneendring fra IdP-en vises ikkeForventet for en bruker som er knyttet til en ansatt så lenge Bruk navn fra identitetsleverandøren som ansattnavn er slått av: navnet som vises, er den ansattes, og det kommer fra HR-integrasjonen. Slå på innstillingen hvis IdP-en skal bestemme de ansattes navn — se Hvilket navn SCIM setter
En endring av e-postadressen vises ikkeBrukeren har allerede aktivert kontoen sin; påloggings-e-posten styres ikke lenger av provisjoneringen
403 på en brukerBrukeren er eier av arbeidsområdet, og det kan ikke SCIM administrere