Skip to content

SCIM 2.0-reference

Teknisk reference for de teams, der står for identitetsstyring og forbinder en IdP (Microsoft Entra ID, SailPoint IdentityIQ m.fl.) med mTime: hvilke SCIM 2.0-attributter og -operationer mTime understøtter, og hvad hver enkelt gør.

Overblik

Basis-URLhttps://<din mTime-vært>/api/scim/v2
StandarderRFC 7643 (skema), RFC 7644 (protokol)
AutentificeringBearer-token: en API-nøgle til arbejdsområdets provisionerings-servicebruger (se Opsæt SCIM med Microsoft Entra ID)
Medietypeapplication/scim+json
Ressourcer/Users, /Groups
FejlSCIM-fejlsvar (RFC 7644 §3.12)

Hvad SCIM styrer, og hvad det ikke styrer

mTime skelner mellem brugeren (login, roller og adgang) og medarbejderen med sine ansættelser:

Bruger → Medarbejder → n Ansættelser

SCIM styrer brugeren: hvem der kan logge ind, under hvilket navn og med hvilke roller. Medarbejdere og ansættelser — organisatorisk enhed, leder, ansættelsesvilkår, arbejdstidsnorm, start- og slutdato — er datostyrede data, som mTime regner på. De kommer fra jeres HR-integration, ikke fra SCIM. En SCIM-bruger forbindes med sin medarbejder via externalId (se Sådan provisioneres brugere).

Derfor understøtter mTime ikke Enterprise User Extension: department, manager og employeeNumber er enkeltværdier uden gyldighedsdato, mens en medarbejder i mTime kan have flere datostyrede ansættelser.

Brugere

Attributter

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

AttributLæsOpretÆndrBemærkninger
id✅——Tildeles af mTime og kan ikke ændres
externalId✅✅✅Fast nøgle (f.eks. medarbejdernummer), unik i arbejdsområdet; en dublet giver 409 uniqueness. Kan knyttes til en medarbejderattribut, så medarbejderen findes ud fra den
userName✅✅⚠️Brugerens e-mailadresse. Kan kun ændres, så længe brugeren ikke har aktiveret sin invitation
emails✅✅⚠️Den primære (eller første) værdi bruges; samme regel som userName. Returneres som én primær e-mail
name.givenName, name.familyName❌✅⚠️Sættes sammen til det fulde navn — kun når begge sendes samtidig (i ét name-objekt eller begge paths i samme PATCH). mTime gemmer ét fulde navn og opdeler det aldrig, så en PATCH med kun det ene ignoreres. Ved oprettelse og PUT bruges et fornavn eller efternavn alene kun, når der ikke er noget name.formatted eller displayName. Returneres ikke ved læsning: navnet kommer tilbage som name.formatted
name.formatted✅✅⚠️Fulde navn; har forrang for fornavn/efternavn. En ændring har ingen synlig effekt for en bruger, der er knyttet til en medarbejder, medmindre IdP’en navngiver medarbejdere — se Hvilket navn SCIM sætter
displayName✅✅⚠️Fulde navn. Samme regel for ændringer som name.formatted
active✅—✅false suspenderer brugeren; true genaktiverer
meta.resourceType, meta.location✅——

Alle andre attributter i Core User (nickName, title, phoneNumbers, addresses, password m.fl.) og hele Enterprise User Extension (urn:ietf:params:scim:schemas:extension:enterprise:2.0:User) understøttes ikke: de ignoreres ved oprettelse og ændring og returneres aldrig.

Hvilket navn SCIM sætter

mTime viser ét navn for en person: medarbejderens navn, når brugeren er knyttet til en medarbejder, ellers brugerens navn.

  • En bruger, der er knyttet til en medarbejder, viser medarbejderens navn, som jeres HR-integration vedligeholder. Som standard opdaterer SCIM ikke en eksisterende medarbejder, så et navn sendt via SCIM har ingen synlig effekt for denne bruger. Er Brug navne fra identitetsudbyderen som medarbejdernavne slået til, skriver hver oprettelse, PUT eller PATCH med et navn også navnet på den tilknyttede medarbejder — se Brug identitetsudbyderens navn på medarbejdere.
  • En bruger uden medarbejder (f.eks. en kladde) viser brugerens eget navn. SCIM sætter det ved oprettelsen og kan ændre det, indtil personen aktiverer sin invitation; derefter følger det navnet på personens egen mTime-konto. Opretter en rolle senere personens medarbejder, får medarbejderen dette navn fra start.

Skift navnet i jeres HR-system for at omdøbe en person, der er medarbejder — eller i IdP’en, hvis den indstilling er slået til.

Operationer

OperationUnderstøttetHvad sker der
POST /Users✅Opretter brugeren som inviteret og sender invitations-e-mailen. E-mail er påkrævet (emails, eller userName, når det er en adresse). Knytter brugeren til en eksisterende medarbejder, når en matcher; ellers oprettes en kladde uden rolle, uden medarbejder og uden invitation. 409, hvis externalId eller medarbejderen allerede er i brug
GET /Users/{id}✅
GET /Users?filter=…⚠️Kun attribute eq "value" på userName eller externalId. Andre attributter eller operatorer giver 400. Kan kombineres med paging
GET /Users (uden filter)✅Alle brugere, side for side — se Paging
PUT /Users/{id}✅Anvender de understøttede attributter ovenfor
PATCH /Users/{id}⚠️add og replace på active, userName, emails, displayName, name (objekt), name.givenName, name.familyName, name.formatted, externalId eller uden path (delvis ressource). En path må have skemapræfikset (urn:ietf:params:scim:schemas:core:2.0:User:name.givenName). remove og andre paths ignoreres
DELETE /Users/{id}✅Sletter brugerkontoen (blød sletning) og afslutter alle sessioner. Medarbejderen og vedkommendes historik bevares. Returnerer 204

Brugere med rollen owner kan ikke ændres eller slettes via SCIM (403).

Deaktivere eller slette?

PATCH active=falseDELETE
Kan logge indNej — sessionerne afsluttes med det sammeNej — sessionerne afsluttes med det samme
BrugerkontoBevares med status suspenderetSlettes (blød sletning)
Medarbejder, tidsregistreringer, godkendelserBevaresBevares
GenaktiveringPATCH active=true gendanner samme brugerEn ny POST opretter en ny bruger, knyttet til samme medarbejder

Grupper

Grupper svarer til mTime-roller: IdP’en ejer gruppen og dens medlemmer, mens mTime-administratorer ejer rollens rettigheder. Se Sådan bliver grupper til roller.

Attributter

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

AttributLæsOpretÆndrBemærkninger
id✅——Tildeles af mTime
externalId✅✅✅
displayName✅✅✅Knyttes til rollen med samme navn eller opretter en tom brugerdefineret rolle. Omdøbning omdøber rollen
members (value, display)✅✅✅value er SCIM-brugerens id

Operationer

OperationUnderstøttetHvad sker der
POST /Groups✅Knytter gruppen til en rolle eller opretter rollen
GET /Groups/{id}✅
GET /Groups?filter=…⚠️Kun attribute eq "value" på displayName eller externalId
GET /Groups (uden filter)✅Alle roller, som IdP’en styrer, side for side — se Paging
PUT /Groups/{id}✅Erstatter navn og medlemmer
PATCH /Groups/{id}✅add, replace og remove på members (også members[value eq "…"]) og displayName
DELETE /Groups/{id}✅Fjerner rollen fra medlemmerne. Selve rollen slettes kun, hvis ingen administrator har konfigureret den

Paging

GET /Users og GET /Groups understøtter indeksbaseret paging (RFC 7644 §3.4.2.4), med eller uden filter.

ParameterStandardBemærkninger
startIndex11-baseret position for det første resultat. Værdier under 1 tæller som 1
count200Resultater pr. side, højst 200. count=0 returnerer kun totalResults

Svaret angiver totalResults (alle match), startIndex og itemsPerPage (resultaterne på denne side). Hent næste side med startIndex + itemsPerPage, indtil du har totalResults resultater. Resultaterne kommer i en fast rækkefølge, så siderne hverken springer resultater over eller gentager dem, medmindre brugere eller grupper oprettes eller slettes undervejs.

Discovery-endpoints

Alle tre kræver samme bearer-token som de øvrige SCIM-endpoints.

EndpointIndhold
GET /ServiceProviderConfigUnderstøttede funktioner, vist nedenfor
GET /SchemasCore-skemaerne User og Group, begrænset til attributterne ovenfor
GET /ResourceTypesUser (/Users) og Group (/Groups), uden skemaudvidelser
{
  "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
    }
  ]
}

Fejlfinding

ProblemLøsning
400 Unsupported filterBrug eq på userName eller externalId (brugere) eller på displayName eller externalId (grupper)
409 uniqueness ved oprettelseEn anden bruger har allerede dette externalId, eller medarbejderen har allerede en bruger. Find brugeren med filter=externalId eq "…", og opdatér den i stedet
Et ændret fornavn eller efternavn vises ikkemTime gemmer ét fulde navn og opdeler det aldrig, så det kan ikke ændre kun den ene del. Send givenName og familyName sammen i samme PATCH, eller send name.formatted eller displayName
Et navneskift fra IdP’en vises ikkeForventet for en bruger, der er knyttet til en medarbejder, så længe Brug navne fra identitetsudbyderen som medarbejdernavne er slået fra: det viste navn er medarbejderens, og det kommer fra jeres HR-integration. Slå indstillingen til, hvis IdP’en skal bestemme medarbejdernavnene — se Hvilket navn SCIM sætter
Et skift af e-mail vises ikkeBrugeren har allerede aktiveret sin konto; login-e-mailen styres ikke længere af provisioneringen
403 på en brugerBrugeren er ejer af arbejdsområdet, og ejere kan ikke styres via SCIM