Skip to main content

SCIM API

Versjon: 4.0
Dato: 4. februar 2026
Generasjon: Felles IAM G4

Dette dokumentet beskriver Felles IAM SCIM API-implementasjonen, inkludert LDAP-til-SCIM attributt-mappinger, API-responsstrukturer og eksterne avhengigheter. Hovedbruksområdet for dette API-et er å tilgjengeligjøre henting av brukerdata via IntArk.

APIet følger SCIM 2.0-protokollen (RFC 7643/7644)

Lenke til Swagger fil

BeskrivelseVerdi
Standard sidestørrelse100
Maksimal sidestørrelse1000
Content-Typeapplication/scim+json

Innholdsfortegnelse

  1. Brukerressurs (/Users)
  2. Grupperessurs (/Groups)
  3. Attributt-transformasjoner
  4. Eksterne avhengigheter
  5. Filteroperatorer
  6. Eksempler på API-kall
  7. SCIM-hendelser - Meldingskø

Brukerressurs (/Users)

Brukerobjektstruktur

Brukerressursen returnerer følgende JSON-struktur:

{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User",
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User",
"no:edu:scim:user"
],
"id": "UHID",
"externalId": "UHID",
"userName": "bruker@institusjon.no",
"displayName": "Visningsnavn",
"name": {
"formatted": "Fullt navn",
"familyName": "Etternavn",
"givenName": "Fornavn"
},
"profileUrl": "https://...",
"title": "Stillingstittel",
"userType": "Employee|Student|External|Other",
"preferredLanguage": "no",
"active": true,
"emails": [
{ "value": "epost@institusjon.no", "type": "work" }
],
"phoneNumbers": [
{ "value": "+47...", "type": "work" },
{ "value": "+47...", "type": "mobile" }
],
"addresses": [
{
"formatted": "Fullstendig adresse",
"streetAddress": "Gateadresse 1",
"locality": "By",
"postalCode": "0000",
"country": "Norway",
"type": "work"
}
],
"roles": [
{
"value": "iam:employee"
},
{
"value": "iam:student"
}
],
"groups": [
{
"value": "gruppe-uuid",
"$ref": "https://.../Groups/gruppe-uuid",
"displayName": "Gruppenavn",
"type": "direct"
}
],
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
"employeeNumber": "12345678",
"costCenter": "0001",
"organization": "Organisasjonsnavn",
"division": "Avdeling",
"department": "Enhet",
"manager": {
"value": "Leders UHID",
"$ref": "https://.../Users/leder-uhid",
"displayName": "Ledernavn"
}
},
"no:edu:scim:user": {
"employeeNumber": "12345678",
"studentNumber": "123456",
"fsPersonNumber": "12345",
"gregPersonNumber": "1234",
"eduPersonPrincipalName": "username@institusjon.no",
"userPrincipalName": "username@institusjon.no",
"accountType": "primary",
"primaryOrgUnit": {
"symbol": "AVD",
"legacyStedkode": "123456",
"nameNb": "Avdeling",
"nameEn": "Department"
},
"orgUnits": [
{
"symbol": "AVD",
"legacyStedkode": "123456",
"nameNb": "Avdeling",
"nameEn": "Department",
"type": "primary"
}
]
},
"meta": {
"resourceType": "User",
"created": "2024-01-15T10:30:00Z",
"lastModified": "2024-06-20T14:22:00Z",
"location": "https://.../Users/uhid"
}
}

Brukerattributt-mappinger

Skjema for bruker (urn:ietf:params:scim:schemas:core:2.0:User)

SCIM-attributtLDAP-attributtTypeTransformasjonBeskrivelse
ididautoIdStrengIngenUnik bruker-ID (UHID)
externalIdidautoIDStrengIngenUnik bruker-ID (UHID)
userNameidautoPersonSystem5IDStrengIngenBrukerens innloggingsnavn (Feide ID)
displayNamedisplayNameStrengBeregnet fra foretrukket navnVisningsnavn for brukeren
name.formatteddisplayNameStrengIngenFormatert fullt navn
name.familyNamesnStrengBruker idautoPersonPreferredLastName hvis tilgjengeligEtternavn
name.givenNamegivenNameStrengBruker idautoPersonPreferredName hvis tilgjengeligFornavn
profileUrlidautoPersonProfileUrlStrengIngenURL til brukerprofil
titleidautoPersonJobTitleStrengIngenStillingstittel
userTypeidautoPersonAffiliationStrengSe userType-transformasjonBrukertype (Employee/Student/External/Other)
preferredLanguageidautoPersonPreferredLanguageStrengIngenForetrukket språk
activeidautoDisabledBooleanInvertert: LDAP TRUE → SCIM falseOm kontoen er aktiv
emails[type=work].valueidautoPersonSystem2IDStrengIngenInstitusjonsepostadresse
phoneNumbers[type=work].valueidautoPersonOfficePhoneStrengIngenKontortelefon
phoneNumbers[type=mobile].valueidautoPersonPhoneExtensionStrengIngenJobbmobil
addresses[type=work].formattedidautoPersonWorkStreetAddressStrengParsetFullstendig arbeidsadresse
addresses[type=work].streetAddressidautoPersonWorkStreetAddressStrengParsetArbeidsadresse gateadresse
addresses[type=work].localityidautoPersonWorkCityStrengIngenArbeidsadresse by
addresses[type=work].postalCodeidautoPersonWorkPostalCodeStrengIngenArbeidsadresse postnummer
addresses[type=work].countryidautoPersonWorkCountryStrengIngenArbeidsadresse land
addresses[type=home].streetAddressidautoPersonStreetAddressStrengIngenHjemmeadresse gateadresse
addresses[type=home].localitylStrengIngenHjemmeadresse by
addresses[type=home].postalCodepostalCodeStrengIngenHjemmeadresse postnummer
rolesidautoPersonAppRoles10ArrayFlerverdietForretningsroller
groupsmemberOfArrayDN konverteres til SCIM-referanseGruppemedlemskap
meta.createdcreateTimestampDatoTidLDAP→SCIM datoformatOpprettelsestidspunkt i RI Portalen
meta.lastModifiedmodifyTimestampDatoTidLDAP→SCIM datoformatSist endret tidspunkt i RI Portalen

Enterprise-brukerutvidelse (urn:ietf:params:scim:schemas:extension:enterprise:2.0:User)

SCIM-attributtLDAP-attributtTypeTransformasjonBeskrivelse
employeeNumberidautoPersonPayrollIDStrengIngenAnsattnummer fra lønnssystem
costCenteridautoPersonCostCenterStrengIngenKostnadssenter
organizationoStrengIngenOrganisasjonsnavn
divisionidautoPersonBusinessUnitStrengIngenAvdeling
departmentouStrengIngenEnhet/seksjon
managermanagerObjektDN konverteres til SCIM-referanseReferanse til brukerens leder

Norsk utdanningsutvidelse (no:edu:scim:user)

SCIM-attributtLDAP-attributtTypeTransformasjonBeskrivelse
employeeNumberidautoPersonPayrollIDStrengIngenAnsattnummer
studentNumberidautoPersonStuIDStrengIngenStudentnummer
fsPersonNumberidautoPersonSchoolIDStrengIngenFS-personløpenummer fra Felles Studentsystem
gregPersonNumberidautoPersonHRIDStrengIngenGREG-personnummer fra gjesteregistrering
eduPersonPrincipalNameidautoPersonSystem5IDStrengIngenFeide ID
userPrincipalNameKonfigurerbarStrengStandard: idautoPersonSystem2ID, fallback: uid@inst_domainUPN hos institusjonen (AD)
norEduPersonNINidautoPersonNationalIDStrengFiltrert fra responser (kun søk)Fødselsnummer (kun søk, returneres ikke)
accountTypeidautoPersonAffiliationsStrengBeregnet: returnerer "primary" hvis gyldige tilknytningerKontotype
primaryOrgUnitidautoPersonDeptCodeObjektParset: symbol|nameNb|nameEn|legacyStedkodePrimær organisasjonsenhet
orgUnitsidautoPersonDeptCodesArrayParset til array av OrgUnit-objekterListe over organisasjonsenheter

Grupperessurs (/Groups)

Gruppeobjektstruktur

Grupperessursen returnerer følgende JSON-struktur:

{
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group"],
"id": "uuid",
"externalId": "streng",
"displayName": "Gruppenavn",
"members": [
{
"value": "bruker-uhid",
"$ref": "https://.../Users/bruker-uhid",
"displayName": "Brukernavn",
"type": "User"
}
],
"meta": {
"resourceType": "Group",
"created": "2024-01-15T10:30:00Z",
"lastModified": "2024-06-20T14:22:00Z",
"location": "https://.../Groups/uuid"
}
}

Gruppeattributt-mappinger

SCIM-attributtLDAP-attributtTypeTransformasjonBeskrivelse
ididautoIdStrengIngenUnik gruppe-ID
externalIdubidExternalIDStrengIngenEkstern identifikator
displayNamecnStrengIngenGruppenavn
membersmemberArrayDN konverteres til SCIM-referanseListe over gruppemedlemmer
meta.createdcreateTimestampDatoTidLDAP→SCIM datoformatOpprettelsestidspunkt
meta.lastModifiedmodifyTimestampDatoTidLDAP→SCIM datoformat

Attributt-transformasjoner

userType-transformasjon

LDAP-verdien idautoPersonAffiliation transformeres til standardiserte SCIM-verdier:

SCIM userTypeLDAP-verdier (ikke skille mellom store/små bokstaver)
Employeeemployee, faculty, staff, separated employee
Studentstudent, private candidate, leave of absence, separated student
Externallong term guest, emeritus, visiting researcher, consultant
OtherAlle verdier som ikke matcher ovenfor

active-transformasjon

active-attributtet utledes fra LDAP idautoDisabled med invertert logikk:

LDAP idautoDisabledSCIM active
TRUEfalse
Ikke satt / annettrue

DN-referanseoppslag

Attributter som inneholder LDAP Distinguished Names (memberOf, member, manager) konverteres til SCIM-referanser:

{
"value": "uhid",
"$ref": "https://base-url/ResourceType/uhid",
"displayName": "Navn fra displayName/cn",
"type": "direct|User"
}

Datoformat-konvertering

LDAP-tidsstempler konverteres fra yyyyMMddHHmmssZ-format til ISO 8601 (2024-01-15T10:30:00Z).

displayName-beregning

displayName beregnes ved å bruke foretrukne navnefelt hvis tilgjengelig:

  • Bruker idautoPersonPreferredName i stedet for givenName hvis tilstede
  • Bruker idautoPersonPreferredLastName i stedet for sn hvis tilstede
  • Format: {fornavn} {etternavn}

OrgUnit-parsing

Attributtene primaryOrgUnit og orgUnits parser LDAP-verdiformatet:

symbol|nameNb|nameEn|legacyStedkode

Til strukturerte objekter:

{
"symbol": "ACRONYM",
"nameNb": "Avdeling for teknologi",
"nameEn": "Department of Technology",
"legacyStedkode": "123456",
"type": "primary"
}

Eksterne avhengigheter

Globale variabler

Disse variablene må konfigureres i RapidIdentity Connect-miljøet:

VariabelBeskrivelseEksempel
Global.SCIMBaseUrlBasis-URL for SCIM APIhttps://gw-INST.intark.uh-it.no/scim/v2/
Global.inst_domainInstitusjonsdomeneinst.no
Global.SCIMVersionAPI-versjonsstrengv4.0.0
Global.SCIMDebugAktiver feilsøkingsloggingfalse
Global.scimUpnLdapMappingLDAP-attr for UPNidautoPersonSystem5ID
Global.employeeAffiliationsAnsatt-tilknytningsverdierAdministrative Staff,Faculty,...
Global.studentAffiliationsStudent-tilknytningsverdierStudent,Bachelor,Master,...
Global.guestAffiliationsGjest-tilknytningsverdierExternal,Long Term Guest,...
Global.disabledAffiliationsDeaktiverte konto-tilknytningerSeparated Employee,Deceased,...
Global.shortTermGuestAffiliationsKorttidsgjest-tilknytningerShort-Term Guest
Global.DisableMQDeaktiver meldingskøtrue

Standardkonfigurasjon (alle institusjoner)

VariabelVerdi
Global.metaLdapChangeLogDNo=changelog
Global.metaEmployeeBaseDNou=Accounts,dc=meta
Global.scimChangeCookie/cookies/scimChange.cookie

Eksterne actionsets

Disse actionsets kalles men er ikke inkludert i SCIM-prosjektet:

ActionsetFormål
FnToArrayHjelpefunksjon for å sikre at verdi er en array
ErrorHandlerStandard feilhåndterings-actionset
Connection_MQAPIMeldingskø API-tilkobling (for endringshendelser)

JavaScript-avhengigheter

Ligger i Scim prosjektet under 'Files':

FilFormål
nearley.jsEarley-parserbibliotek for SCIM-filterparsing
scimfilter.jsSCIM-filtergrammatikkdefinisjon

Filteroperatorer

Støttede SCIM-filteroperatorer

OperatorBeskrivelseEksempelLDAP-oversettelse
eqEr likuserName eq "bruker@inst.no"(attr=verdi)
neEr ikke likuserType ne "Other"(!(attr=verdi))
coInneholderdisplayName co "Hansen"(attr=*verdi*)
swStarter meduserName sw "ola"(attr=verdi*)
ewSlutter medemails.value ew "@inst.no"(attr=*verdi)
gtStørre ennmeta.created gt "2024-01-01"(&(attr>=verdi)(!(attr=verdi)))
ltMindre ennmeta.lastModified lt "2024-06-01"(&(attr<=verdi)(!(attr=verdi)))
geStørre eller likmeta.created ge "2024-01-01"(attr>=verdi)
leMindre eller likmeta.created le "2024-12-31"(attr<=verdi)
prFinnestitle pr(attr=*)
andLogisk OGactive eq true and userType eq "Employee"(&filter1 filter2)
orLogisk ELLERuserType eq "Employee" or userType eq "Student"(|filter1 filter2)
notLogisk IKKEnot(userType eq "Other")(!filter)

Ikke-støttede funksjoner

  • valuePath-uttrykk: f.eks. emails[type eq "work" and value co "@example.com"]
  • eq null: Null-likhetssammenligninger
  • Filter på name.formatted: Ikke filtrerbart

Eksempler på API-kall

Tilgjengelige spørringsparametere

API-et støtter følgende spørringsparametere som automatisk konverteres til SCIM-filteruttrykk:

ParameterBeskrivelseKonvertert filter
userNameBrukernavn (legger automatisk til institusjonsdomene)filter=userName eq "verdi@institusjon.no"
employeeNumberAnsattnummerfilter=no:edu:scim:user:employeeNumber eq "verdi"
userTypeBrukertypefilter=userType eq "verdi"
activeAktiv statusfilter=active eq "verdi"
studentNumberStudentnummerfilter=no:edu:scim:user:studentNumber eq "verdi"
fsPersonNumberFS-personnummerfilter=no:edu:scim:user:fsPersonNumber eq "verdi"
gregPersonNumberGREG-personnummerfilter=no:edu:scim:user:gregPersonNumber eq "verdi"
norEduPersonNINFødselsnummer (kun søk, returneres ikke i respons)filter=no:edu:scim:user:norEduPersonNIN eq "verdi"

Eksempler på bruk

Hent alle aktive brukere

GET /scim/v2/Users?active=true

Respons: Alle brukere hvor active er true.


Hent alle inaktive brukere

GET /scim/v2/Users?active=false

Respons: Alle brukere som er deaktivert i systemet.


Hent bruker med brukernavn

GET /scim/v2/Users?userName=ola.nordmann

Merk: Institusjonsdomenet legges automatisk til, så dette blir: filter=userName eq "ola.nordmann@institusjon.no"


Hent bruker med fullt brukernavn

GET /scim/v2/Users?userName=ola.nordmann@inst.no

Merk: Hvis domene allerede er inkludert, brukes det direkte.


Hent alle ansatte

GET /scim/v2/Users?userType=Employee

Respons: Alle brukere med userType lik "Employee".


Hent alle studenter

GET /scim/v2/Users?userType=Student

Respons: Alle brukere med userType lik "Student".


Hent alle eksterne brukere

GET /scim/v2/Users?userType=External

Respons: Alle gjester og eksterne brukere.


Hent bruker med ansattnummer

GET /scim/v2/Users?employeeNumber=12345678

Respons: Brukeren med det spesifikke ansattnummeret.


Hent bruker med studentnummer

GET /scim/v2/Users?studentNumber=234567

Respons: Studenten med det spesifikke studentnummeret.


Hent bruker med FS-personløpenummer

GET /scim/v2/Users?fsPersonNumber=FS12345

Respons: Brukeren med det spesifikke FS-personnummeret fra Felles Studentsystem.


Hent bruker med GREG-personnummer

GET /scim/v2/Users?gregPersonNumber=GREG789

Respons: Brukeren med det spesifikke GREG-personnummeret (gjesteregistrering).


Søk etter bruker med fødselsnummer

GET /scim/v2/Users?norEduPersonNIN=12345678901

Merk: Fødselsnummeret kan brukes til søk, men returneres IKKE i responsen av personvernhensyn.


Bruk av standard SCIM-filter

For mer avanserte søk kan du bruke filter-parameteren med SCIM-filtersyntaks:

Hent aktive ansatte

GET /scim/v2/Users?filter=active%20eq%20true%20and%20userType%20eq%20%22Employee%22

Dekodet: filter=active eq true and userType eq "Employee"

Beskrivelse: Finner alle brukere som er aktive og har brukertype "Employee".


Hent ansatte eller studenter

GET /scim/v2/Users?filter=userType%20eq%20%22Employee%22%20or%20userType%20eq%20%22Student%22

Dekodet: filter=userType eq "Employee" or userType eq "Student"

Beskrivelse: Finner alle brukere som enten er ansatte eller studenter.


Filtrering med tekstoperatorer

Disse eksemplene viser hvordan du kan bruke co (inneholder), sw (starter med) og ew (slutter med) for tekstsøk.

Hent brukere med navn som inneholder "Hansen"

GET /scim/v2/Users?filter=displayName%20co%20%22Hansen%22

Dekodet: filter=displayName co "Hansen"

Beskrivelse: Finner alle brukere med "Hansen" i visningsnavnet (f.eks. "Hansen", "Berg Hansen", "Hansenberg").


Søk etter brukere med navn som inneholder tekst

GET /scim/v2/Users?filter=name.familyName%20co%20%22Berg%22

Dekodet: filter=name.familyName co "Berg"

Beskrivelse: Finner alle brukere med "Berg" i etternavnet (f.eks. "Bergersen", "Lindberg", "Berg").


Hent alle brukere med e-post fra et spesifikt domene

GET /scim/v2/Users?filter=userName%20ew%20%22%40inst.no%22

Dekodet: filter=userName ew "@inst.no"

Beskrivelse: Finner alle brukere hvor brukernavnet slutter med @inst.no. Nyttig for å filtrere brukere basert på institusjonstilhørighet.


Hent brukere med brukernavn som starter med en bokstav

GET /scim/v2/Users?filter=userName%20sw%20%22a%22

Dekodet: filter=userName sw "a"

Beskrivelse: Finner alle brukere hvor brukernavnet starter med bokstaven "a".


Søk etter brukere i en spesifikk avdeling

GET /scim/v2/Users?filter=urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:department%20co%20%22IT%22

Dekodet: filter=urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:department co "IT"

Beskrivelse: Finner alle brukere i avdelinger som inneholder "IT" i navnet (f.eks. "IT-avdelingen", "Seksjon for IT-drift").


Hent brukere opprettet etter en dato

GET /scim/v2/Users?filter=meta.created%20ge%20%222024-01-01T00:00:00Z%22

Dekodet: filter=meta.created ge "2024-01-01T00:00:00Z"

Beskrivelse: Finner alle brukere som ble opprettet 1. januar 2024 eller senere. Bruk ISO 8601-format for datoer.


Kombinere tekstoperatorer med andre filtre

GET /scim/v2/Users?filter=userName%20ew%20%22%40inst.no%22%20and%20active%20eq%20true%20and%20userType%20eq%20%22Employee%22

Dekodet: filter=userName ew "@inst.no" and active eq true and userType eq "Employee"

Beskrivelse: Finner alle aktive ansatte med institusjonens e-postdomene.


Tekstoperator-referanse

OperatorNavnEksempelMatcher
coInneholderdisplayName co "Berg""Bergersen", "Lindberg", "Berg"
swStarter meduserName sw "ola""ola.nordmann", "olav.hansen"
ewSlutter meduserName ew "@inst.no""bruker@inst.no", "test@inst.no"

Paginering

Hent første side med 50 resultater

GET /scim/v2/Users?count=50

Hent side 2 (resultater 51-100)

GET /scim/v2/Users?startIndex=51&count=50

Kombinere paginering med filter

GET /scim/v2/Users?active=true&startIndex=1&count=100

Attributtseleksjon

Hent kun spesifikke attributter

GET /scim/v2/Users?attributes=userName,displayName,emails

Respons: Returnerer kun userName, displayName og emails for hver bruker.


Ekskluder attributter

GET /scim/v2/Users?excludedAttributes=groups,roles

Respons: Returnerer alle attributter unntatt groups og roles.


Gruppeforespørsler

Hent alle grupper

GET /scim/v2/Groups

Hent en spesifikk gruppe

GET /scim/v2/Groups/550e8400-e29b-41d4-a716-446655440000

Søk etter gruppe med navn

GET /scim/v2/Groups?filter=displayName eq "IT-Avdeling"

Hent grupper med medlemmer

GET /scim/v2/Groups?attributes=displayName,members

Enkeltbruker-forespørsler

Hent en spesifikk bruker med UHID

GET /scim/v2/Users/550e8400-e29b-41d4-a716-446655440000

SCIM-hendelser - Meldingskø

SCIM API-et kan publisere endringsmeldinger til en meldingskø når brukere opprettes, endres eller slettes. Institusjonen er selv ansvarlig for å sette opp og konfigurere meldingskøen som SCIM-systemet skal publisere til.

Implementasjonen følger SCIM Notify-standarden

Hendelsestyper

TypeBeskrivelse
ADDNy bruker opprettet
MODIFYBrukerattributter endret
DELETEBruker slettet
ACTIVATEBrukerkonto aktivert
DEACTIVATEBrukerkonto deaktivert

Meldingsformat

Meldinger publiseres til emnet (topic): no.{inst}.iga.scim.user.{hendelsestype}

inst er basert på Global variabelen Global.SCIMBaseUrl

Eksempel på emne er meldningen "no.uib.iga.scim.user.modify".

Eksempel på meldingsstruktur:

{
"schemas": ["urn:ietf:params:scim:schemas:notify:2.0:Event"],
"type": "MODIFY",
"time": "2026-02-05T10:30:00Z",
"resourceUris": [
"https://gw-inst.intark.uh-it.no/scim/v2/Users/uhid-12345"
],
"attributes": [
"displayName",
"name.givenName",
"emails[type eq \"work\"]",
"phoneNumbers[type eq \"work\"]"
]
}

Siden IntArk foretrekker korte/mindre meldinger, så inkluderes ikke .values attributtet.

Felter:

  • schemas: SCIM Event-skjema
  • type: Hendelsestype (ADD/MODIFY/DELETE/ACTIVATE/DEACTIVATE)
  • time: Tidspunkt for hendelsen (ISO 8601)
  • resourceUris: URI til den påvirkede ressursen
  • attributes: Liste over attributter som ble endret (kun for MODIFY)