...
Feide-ldap (ved hver institusjon),
Public360 og
UBW.
Brukerdata fra LDAP (kan utvides til flere kildesystemer), meldingskøer med MeldingQ. LDAP-data hentes vha. LDAP-service (/wiki/spaces/IPM/pages/2610102276).
...
Først delen (adc-app) finner alle endringer siden sist kjøring. Dette gjøres ved å hente ut en full liste over alle aktive brukere fra Feide-ldapen til hver institusjon. En hash-verdi av brukerinformasjonen sjekkes mot databasen som inneholder hash-verdi av brukere hentet sist. På den måten vil tjenesten finne ut om brukere med endring. (og de som er nye eller ikke finnes lenger)
Her er en JSON-schema som kan brukes til å validere strukturen i meldingen som blir videresendt til UBW og/eller P360:
Code Block { "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": { "sourceType": { "type": "string" }, "orgId": { "type": "string" }, "userId": { "type": "string", "format": "email" }, "operationType": { "type": "string", "enum": ["insert", "update", "delete"] }, "userData": { "type": "object", "properties": { "dn": { "type": "string" }, "attributes": { "type": "object", "properties": { "cn": { "type": "array", "items": { "type": "string" } }, "eduPersonPrincipalName": { "type": "array", "items": { "type": "string", "format": "email" } }, "givenName": { "type": "array", "items": { "type": "string" } }, "l": { "type": "array", "items": { "type": "string" } }, "mail": { "type": "array", "items": { "type": "string", "format": "email" } }, "mobile": { "type": "array", "items": { "type": "string", "pattern": "^\\+\\d{8,15}$" } }, "norEduPersonLIN": { "type": "array", "items": { "type": "string" } }, "postalAddress": { "type": "array", "items": { "type": "string" } }, "sn": { "type": "array", "items": { "type": "string" } }, "title": { "type": "array", "items": { "type": "string" } } }, "required": ["cn", "eduPersonPrincipalName", "givenName", "sn"] } }, "required": ["dn", "attributes"] }, "removedEntitlements": { "type": "array", "items": { "type": "string" } } }, "required": ["sourceType", "orgId", "userId", "operationType", "userData"] }
Forklaring:
sourceType
,orgId
,userId
, ogoperationType
er påkrevd felt med spesifikke typer.
operationType
er begrenset til verdiene "insert", "update", eller "delete".
userData
inneholder dn og attributes, som har egne valideringsregler.
attributes
inkluderer flerdimensjonale arrays for felt som navn, e-post, mobilnummer osv. Format- og mønstervalidatorer sikrer korrekt struktur.
removedEntitlements
er en valgfri liste med strenger.
For hver endring funnet, sendes det en melding til P360 og/eller UBW køene basert på om institusjonen har den tjenesten (info om det har vi i vår config-db) og basert på entitlement på brukeren (hvis institusjonen har valgt å bruke entitlements, eller vil alle opprettes). Før meldingen sendes, utføres det en nytt kall til Feide-ldap for å hente ut brukerdata for brukeren som da legges til meldingen. Se under for komplett melding.
Merk at om brukeren er slettet, vil man ikke kunne hente ut noe bruker-data om vedkommende. Userdata vil da være null.
...