Skip to content

Krav: tildele tilgang til applikasjon mot organisasjonssamling (BRU-TIL-SAM-002) - #548

Open
krhoybraten-sikt wants to merge 1 commit into
mainfrom
krav/tildeling-via-organisasjonssamling
Open

krhoybraten-sikt wants to merge 1 commit into
mainfrom
krav/tildeling-via-organisasjonssamling

Conversation

@krhoybraten-sikt

Copy link
Copy Markdown

Tildeling av tilgang til en applikasjon mot en organisasjonssamling er besluttet og under bygging. Forvaltningen av samlingene selv — hvem som får opprette dem og endre medlemslistene — er fortsatt uavklart og fortsetter som designdiskusjon i #546. Denne PR-en skiller ut den besluttede delen som en egen egenskap, med @must @planned (besluttet, under bygging, ikke deployert ennå).

Denne PR-en erstatter tildele_tilgang_via_organisasjonssamling.feature i #546. Id-en BRU-TIL-SAM-002 er gjenbrukt, og filnavnet er nytt (tildele_tilgang_mot_organisasjonssamling.feature) slik at de to PR-ene ikke kolliderer i samme mappe. Når #546 oppdateres bør 002-fila fjernes derfra, og #546 stå igjen som diskusjonen om BRU-TIL-SAM-001 og forvaltningen.

Hva som er besluttet, og som featuren nå lover

  • Mottakeren er en applikasjon. Det er applikasjonsadministratorens flyt, den samme som BRU-APP-API-007 og BRU-APP-API-008 beskriver for én organisasjon, bare rettet mot en mengde. Brukere som mottaker er fortsatt et åpent spørsmål.
  • Gatingen er en anti-eskaleringsregel — kjernescenarioet. Rettigheten er den samme som for å tildele mot én organisasjon (ingen ny rolle, ingen egen samlingsrolle), men den kreves i miljøet for hver organisasjon som er aktivt medlem av samlingen. Én tildeling mot en samling gir tilgangen i alle medlemmene, så delvis dekning ville latt en administrator ved ett lærested tildele ved alle de andre ved å gå gjennom en samling lærestedet er medlem av. Den tomme mengden har et eget ledd: uten det ville dekningskravet vært trivielt sant for en samling uten aktive medlemmer.
  • Temporalt og sporbart. Tilbaketrekking lukker gyldigheten framfor å slette innslaget, så historikken svarer på hva som har vært gitt, når, og av hvem.
  • Idempotent i begge retninger. Å gi en tilgang som alt gjelder, og å trekke tilbake en som ikke gjelder, er suksess uten at historikken endres.
  • Tilbaketrekking berører ikke tilgang som består på annen vei — en direkte tildeling i en medlemsorganisasjon, eller en annen samling. De to veiene er uavhengige i begge retninger.
  • Virkningen følger medlemslisten videre. Meldes en organisasjon inn i en samling som alt har tildelinger, omfattes den; meldes den ut, mister den tilgangen. Tildelingen står uendret i begge tilfeller.
  • Tildelingene er skjermet, katalogen og medlemslisten er åpen. Lesesemantikken er den samme mengden som skrivesemantikken: du ser de tildelingene du selv kunne skrevet. Derav en felle flaten må håndtere — en tom liste betyr ikke at samlingen er uten tildelinger.

Uavhengig av forvaltningsmodellen

Alle reglene er formulert mot en samling som finnes og en medlemsliste som gjelder. Ingen av dem forutsetter hvem som skrev dem: kravet gjelder likt enten medlemslistene vedlikeholdes gjennom en flate i løsningen eller av databaseforvaltningen. Det er derfor denne delen kan tas i bruk før forvaltningsspørsmålet i #546 er avgjort.

Designnotatet

tildele_tilgang_mot_organisasjonssamling.design.md begrunner gatingen (full dekning, ikke-tomhetsleddet, og hvorfor et globalt Sikt-privilegium er avvist for denne flaten), uavhengigheten fra forvaltningsmodellen, og to valg som er verdt review:

  • Dekningen vurderes ved tildelingstidspunktet. En senere innmelding utvider rekkevidden uten at dekningskravet ser det. Ingen sjekk på tildelingssiden kan forhindre det; det som kan er en revalidering på medlemskapssiden, som hører i Utkast til designdiskusjon: forvaltning av organisasjonssamlinger (BRU-TIL-SAM-001/002) #546.
  • Det finnes ikke ett «fortsatt effektiv»-svar for en tilbaketrekking mot en samling — svaret er ett per medlemsorganisasjon, og det ærlige stedet å lese det er applikasjonens egen tilgangsliste. Provenienssporet (skal en samlingsavledet tilgang vises i applikasjonens liste, og hvordan?) står som åpent spørsmål.

Semantikken er verifisert mot datamodellen og skriveflaten i fs-plattform (migrering 0029 for modellen og autorisasjonsutvidelsen, 0045 for skriveflaten), ikke bare mot utkastet.

Tildeling av en tilgang til en applikasjon mot en organisasjonssamling er
besluttet og under bygging, i motsetning til forvaltningen av samlingene selv
(BRU-TIL-SAM-001), som fortsatt er en designdiskusjon. Kravet skilles derfor ut
som en egen, vedtatt egenskap med @must @planned.

Kjernen er anti-eskaleringsregelen: rettigheten til å tildele kreves i miljøet
for hver organisasjon som er aktivt medlem av samlingen, ikke bare for én. Én
tildeling mot en samling gir tilgangen i alle medlemmene, så delvis dekning
ville vært en vei til å tildele i organisasjoner man ikke har rett i.

Featuren dekker også temporalitet og sporbarhet, idempotens i begge retninger,
at tilbaketrekking ikke berører tilgang som består på annen vei, at virkningen
følger medlemslisten videre, og at tildelingene er skjermet mens katalogen og
medlemslisten er åpen lesning.

Designnotatet begrunner gatingen og hvorfor kravet står uavhengig av hvordan
samlingene selv forvaltes.
@krhoybraten-sikt

Copy link
Copy Markdown
Author

Krysspeker: samling-semantikken denne PR-en eier — at én tildeling virker i alle aktive medlemsorganisasjoner, og at virkningen følger medlemslisten videre — er nå premisset for en vurdering i #547 av om de beslektede mekanismene bør få samme skop.

Designnotatet der har fått en ny underseksjon, «Samling-skop: bør tak, gulv og nekt også kunne peke på en mengde?». Kort oppsummert: skillet følger retningen på det som utvides automatisk ved en innmelding. For tildelinger og delegeringstak er et nytt medlem mottaker av rekkevidde; for gulv og åpne roller er det kilden til data som blir tilgjengelig. Derfor anbefales samlingsform for tak (og for nekt, som utvides i trygg retning — mer nektes, aldri mindre), men ikke for gulv og åpne roller.

Ingenting i denne PR-en endres av det; henvisningen går bare den ene veien, slik at leseren av #547 finner semantikken her.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants