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)