Bakgrunn
I Prosjekt Tilgangsstyringsgrupper (TSG) skal det opprettes grupper basert på tilgangsmodellen ORG-ERA.
Det er ikke helt klart hvilke grupper som skal opprettes basert på hvilke roller, så løsningsforslaget er et proof-of-concept som lar oss representere tilgangsdata i Cerebrum, og opprette enkelte grupper på bakgrunn av dette.
Løsningsforslaget er scopet ned til ansettelsesroller fra SAP, men kan senere utvides med moduler for studentroller. Dette vil være en større jobb.
Design
I all hovedsak omhandler løsningsforslaget import av ansettelsesinformasjon i Cerebrum, i form av hvilke stillingskoder og yrkeskoder en gitt person har ved en gitt organisasjonsenhet.
Kodeverk
Import og vedlikehold av kjente stillingskoder og yrkeskoder.
Datamodell
sap_sko -----+---------- sko | sko_name pk (sko,) sap_yrk -----+---------- yrk | yrk_name pk (yrk,)
Vedlikehold
Det implementeres en importjobb som kan hente og vedlikeholde koder i Cerebrum. Jobben kan i første omgang kjøres manuelt ved behov.
Den må opprette, oppdatere og fjerne koder. Man må også ha funksjonalitet som fjerner relatert informasjon (assignments, grupper bygget på bakgrunn av koder)
Assignments
Informasjon om ansettelser i Cerebrum, frikoplet fra tilknytning.
Datamodell
sap_assignments ---------------+-----------+----+-----+----- assignment_id | person_id | ou | sko | yrk pk (assignment_id,) unique (assignment_id, person_id) ref person_id -> person_info(person_id) ref ou -> ou_info(ou_id) ref sko -> sap_sko(sko) ref yrk -> sap_yrk(yrk)
TODO
Hva med kategori (teknisk, administrativ, vitenskapelig, gjest)? Dette kan evt. beregnes og legges inn ved oppdatering av assignments.
Kan evt. utvides med annen informasjon knyttet til en ansettelsesrolle.
Vedlikehold
- Assignments vedlikeholdes i hr-import
- Dersom OU fjernes utenfor hr-import, så må man også fjerne assignments, gruppe-templates, og tilhørende grupper. Dette kan løses med en egen OU-mixin.
- Dersom person fjernes utenfor hr-import, så må man også fjerne assignments. Dette kan løses med en egen Person-mixin.
Grupper
Oversikt over hvilke grupper som skal bygges basert på assignments.
Datamodell
sap_group_templates ----------+----+-----+----- group_id | ou | sko | yrk pk (group_id,) unique (ou, sko, yrk) ref ou -> ou_info(ou_id) ref sko -> sap_sko(sko) ref yrk -> sap_yrk(yrk) ref group_id -> group_info(group_id)
Feltene (ou, sko, yrk) kan settes til null, men minst ett felt må være not null. Hvilke felter som er null angir hvilket navneformat som skal brukes for gruppe.
F.eks.:
group_id | ou | sko | yrk ----------+-------+------+--------- 1 | 12 | NULL | NULL -> org-era-ou-<ou-navn> 2 | NULL | 389 | 2310111 -> org-era--sko-389--yrk-2310111 3 | 12 | 389 | 2310111 -> org-era-<ou-navn>-389-2310111
Vedlikehold
- Policy for grupper
- Gruppenavn beregnes basert på utplukk
- Grupper får en egen gruppetype (f.eks. org-era-assignment)
- Policies vedlikeholdes med bofh-kommandoer. Superbruker (i første omgang) får lov å legge inn nye grupper/templates som skal oppdateres med en gitt ou/sko/yrk, eller fjerne template for en gitt gruppe.
- Relatert informasjon
- Vi må ha opprydding i templates dersom gruppe fjernes. En Group-mixin kan fjerne tilhørende templates.
- Medlemsskap
- En egen batch-jobb går gjennom templates og assignments, og sørger for at grupper er oppdatert. Her brukes funksjonalitet for gruppetrær for vedlikehold.
- Annet
Det kan være nyttig med bofh-kommandoer for innsyn
- hvilke sko/yrk finnes i kodeverk (og kan benyttes i templates)?
- se hvilke assignments en gitt person har?
- se hvilken template som er knyttet til en gitt gruppe?