ORG-ERA

Løsningsforslag for ORG-ERA-tilgangsdata i Cerebrum.

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?
Av fhl
Publisert 25. nov. 2020 16:00