Kalenderdata
| Oppdatert: | 25. februar 2025 |
|---|
Kalenderdataprosjektet har som mål å gi studenter og ansatte et samlet bilde av sin kalender. Exchange (eller Exchange Online/O365) er valgt som visningsflate, mens selve dataene hentes ut fra ulike tjenester/systemer.
1 Oversikt
Vi har gjort (skal gjøre) tre endringer i Exchangemiljøet for at integrasjonen utviklet av Kalenderdataprosjektet skal kunne oppdatere kalenderen til studenter og ansatte:
- Det er opprettet en bruker kadapilot
- Kalenderdata-brukeren skal delegeres rettigheter på kalendermappen til nye brukere med «author»-rollen.
- Det kjøres jevnlig et skript som sjekker at kalenderdata-brukeren har tilgang til alle ansatte og studenter sin kalendermappe (siden rettighetene kan fjernes av brukeren).
Å bruke Set-MailboxFolderPermission og «Author»-rollen gir kalenderdata-brukerne det minste nivået av tilgang mulig (samtidig som den kan utføre endringene som trengs):
- CreateItems - Opprette avtaler i kalendermappen.
- DeleteOwnedItems - Kan kun slette kalenderoppføringer den selv har laget.
- EditOwnedItems - Kan kun endre kalenderoppføringer den selv har laget.
- FolderVisible - Synliggjør kalendermappen.
- ReadItems - Lesetilgang til kalendermappen.
Denne løsningen har et par viktige momementer. Kalenderintegrasjonen har rettigheter/tilgang til å slette/ødelegge annet enn egne kalenderdata. I tillegg skal ikke oppføringer som er markert som private være tilgjengelige/vises (dette må verifiseres på nytt etter bytte fra «editor»- til «author»-rollen.
Kalenderintegrasjonen gis ikke tilgang til annet enn kalendermappen. Det vil ikke være mulighet til å lese ut e-post (med mindre de er kopiert inn i kalenderen). Integrasjonen er kun gitt tilgang til vanlige brukre, dvs. ikke systembrukere, rom, ressurser o.l.. Kalenderbrukeren vil heller ikke ha tilgang til kalenderoppføringer som brukere har markert som private.
Ulempen med å gi tilgang på det mest finmaskede nivået som er tilgjengelig, er at Exchange dessverre er designet slik at kalendermappen bytter navn når brukeren bytter språk. Det er også mulig for brukeren selv å endre navn eller bytte primær kalendermappe. Skript for rettighetsstyring og integrasjonen må derfor hente ut kalendermappen for hver enkelt bruker før leseing og skriving. Brukere
NB! For Exchange Online så finnes det flere innstillingsmuligheter knyttet til rettigheter og hva som er synlig i kalendermappen enn for lokal Exchange.
1.1 Oppgaveliste
Følgene står på TODO-listen vår:
- Endre oppretting av brukere til å delegere rettigheter til kalendermappen til brukeren til kalenderdata-brukeren.
- Sette opp add-calendar-access-all-users.ps1 til å kjøre schedulert (skriptet som gir tilgang)
- Følge opp ressursbruk i Exchangemiljøet.
- Verifisere at private kalenderoppføringer ikke vises.
1.2 Alternativer
Det ble vurdert to alternative metoder for å gi kalenderdataprosjektet tilgang til Exchange som begge ble forkastet.
Den enkleste måten å gi tilgang på er å gi kalenderdata-brukeren tilgang på databasenivå. Grunnen til at dette ikke ble gjort er at man da kun kan gi rettigheter på AD-objektene (med Add-ADPermission), noe som ville gitt lese- og skrivetilgang til all e-post.
Den andre metoden er å bruke «impersonate», altså utgi seg for å være brukeren. Fordelen med dette er at oppføringene i kalender vil framstå som laget av brukeren selv. Ulempen er den samme som den første metoden som ble forkastet - det vil gi full tilgang til e-post.
1.3 I produksjon
Løsningen er satt i produksjon.
Brukeren på Exchange som er gitt skrivetilgang har fått nytt navn kada-synk med displayname Kalendersynkronisering. Det gamle var kadapilot.
Det er laget to skript for å gi kada-synk den tilgangen som trengs. Skriptet add-calendar-access-kada-new-users.ps1 gir tilgang til nye brukere som er opprettet dagen før og inneværende dag. Skriptet add-calendar-access-all-users.ps1 traverserer alle brukere og sjekker og eventuelt retter tilgangen. Dette gjøres fordi brukere selv kan fjerne eller endre tilgangen. Det kan vi ikke unngå.
Det er satt opp to schedulerte jobber som kjører de to skriptene nevnt over. Jobben Kalendertilgang kada nye brukere kjøres hver natt med følgende kommando:
C:\repo-bin\add-calendar-access-kada-new-users.ps1
Og jobben Kalendertilgang kada alle brukere kjøres hver uke natt til søndag med følgende kommando:
C:\repo-bin\add-calendar-access-all-users.ps1 -user kada-synk -access author -exceptions kada-opt-out