Naar hoofdinhoud gaan

Een rol toegang geven tot records

Doel​

Bepalen wat elke rol mag doen met de records in een omgeving — als onderdeel van de oplossing die de applicatie levert, zodat dezelfde toegang ook Test en Prod bereikt.

Vereisten​

  • Je bent aangemeld bij het Beheercentrum.
  • Er is een oplossing geopend (zie Een oplossing aanmaken).
  • De tabellen waartoe je toegang wilt geven, bestaan in de omgeving. Een tabel wordt aangemaakt met zijn gegevens erachter, dus elke tabel die je kunt zien, is er een waartoe je toegang kunt geven.

Twee vragen, niet één​

Elke regel van een rol beantwoordt twee aparte vragen, en wie die splitsing begrijpt, begrijpt het grootste deel van dit scherm:

  • Een machtiging — wat mogen ze doen? Create, Read, Update, Delete op een tabel.
  • Een beleid — bij welke records? Van Records die ik bezit, via Mijn eenheid en lager, tot Elk record.

Daarom is elke cel in het raster een vervolgkeuzelijst en geen selectievakje: een selectievakje kan alleen de eerste vraag beantwoorden.

De rol aan een team geven​

Boven het raster staat een lijst met de teams van de omgeving, elk met een selectievakje. Iedereen in een aangevinkt team heeft deze rol hier, bovenop iedereen aan wie de rol direct is gegeven op de pagina Gebruikers. Beide manieren tellen tegelijk: iemand in een aangevinkt team die de rol ook persoonlijk heeft, heeft hem één keer.

Dat is de tweede helft van wat het betekent om iemand in een team te plaatsen. Teamlidmaatschap bepaalde al welke records een machtiging bereikt — de beleidsregels Mijn teams — en nu kan het ook bepalen welke machtigingen ze hebben.

Het is de eigen beslissing van je organisatie, dus het reist nooit mee in een oplossing. Een pakket brengt een rol mee en wat die rol mag doen; wie hem heeft, gaat over je mensen, en daar heeft een uitgever niets over te zeggen. Deze lijst is dus dezelfde in welke oplossing je ook staat, en een verwijdering van een oplossing raakt hem niet.

Het werkt vanaf het volgende verzoek, net als elke andere wijziging op dit scherm — ook als iemand zich daarna bij het team aansluit of het verlaat.

Platformbevoegdheden — wat niet over een tabel gaat​

Boven het raster staat een korte lijst met selectievakjes: Een oplossing importeren, Een oplossing exporteren, Gegevens importeren. Dit zijn de mogelijkheden waar geen tabel achter zit, dus de tweede vraag is niet van toepassing — er zijn geen records die een beleid kan filteren. Je hebt ze wel of niet, en daarom zijn het selectievakjes en geen vervolgkeuzelijsten.

Ze gelden per omgeving, net als al het andere op dit scherm: een rol die een oplossing in Dev mag importeren, mag daardoor nog niet in Prod importeren.

Gebruikers en rollen beheren staat hier niet, en dat is bewust, geen omissie. Gebruikers en rollen gelden voor de hele tenant — ze bestaan in welke omgeving je ook bent — dus "mag gebruikers beheren, in Dev" is geen zin die iets betekent. Dat blijft bij de platformbeheerder.

De rij "Alle tabellen" dekt geen bevoegdheid. Die betekent elke tabel, en het platform is geen tabel. Een bevoegdheid wordt toegekend door haar aan te vinken.

Stappen​

  1. Open Oplossingen en open daarna de oplossing waarin je applicatie staat.
  2. Open Rollen in de navigatie van de oplossing.
  3. Selecteer Nieuw om een rol aan te maken die deze oplossing bezit, of Bestaande rol toevoegen om toegang te geven aan een rol die je organisatie al heeft.
  4. Zet in het raster elke cel op een beleid, of laat hem op Niet toegekend.
  5. De eerste rij is Alle tabellen. Een toekenning daar dekt elke tabel — ook tabellen die je later aanmaakt, wat een toekenning per tabel niet zou doen.
  6. Selecteer Opslaan.

De wijziging werkt vanaf het volgende verzoek. Er is geen vertraging om op te wachten.

Waarom dit binnen een oplossing staat, en waarom het nooit vraagt welke omgeving​

Een machtiging noemt een tabel, en tabellen horen bij een omgeving; een toekenning die Test en Prod moet bereiken, moet in een pakket meereizen. Door een oplossing te openen liggen beide al vast — een oplossing hoort bij één omgeving — dus heeft het scherm geen omgeving om je naar te vragen. Om dezelfde rol ergens anders andere toegang te geven, exporteer je de oplossing en importeer je haar daar, of wissel je van omgeving en werk je in de oplossing van die omgeving.

Welke rollen de lijst toont​

Een rol staat om een van twee redenen in een oplossing, en beide staan in de lijst:

  • De oplossing bezit hem — hier aangemaakt met Nieuw, dus zijn logische naam draagt het voorvoegsel van de uitgever (par_sales).
  • De oplossing kent hem iets toe — een rol die je organisatie al had, binnengehaald met Bestaande rol toevoegen.

Een bestaande rol toevoegen schrijft op zichzelf niets weg; hij wordt deel van de oplossing op het moment dat je hem iets toekent en opslaat. Je eigen rol sales iets toekennen maakt hem nooit van de uitgever: of een rol bij een pakket hoort, wordt bepaald door zijn voorvoegsel, dus een verwijdering van een oplossing kan je rol niet wegnemen.

Uit oplossing verwijderen wist alleen de toekenningen die deze oplossing doet. Een rol die de oplossing bezit, kan zo niet worden verwijderd — hij hoort bij het pakket, dus hem verwijderen betekent de rol verwijderen op de pagina Rollen van het Beheercentrum.

De laag die je bewerkt​

De cellen tonen wat deze oplossing toekent. Waar een andere laag al iets toekent dat de oplossing leeg laat, zegt de cel dat — Al elders toegekend: … — in plaats van het erin op te nemen. Dat onderscheid doet ertoe omdat het scherm terugschrijft wat het toont: als het het samengevoegde antwoord toonde, zou één keer opslaan je lokale bewerkingen, en de toekenningen van andere oplossingen, naar je pakket kopiëren.

De standaardoplossing ("Main") is de uitzondering. Die is geen pakket, dus haar raster bewerkt de eigen toekenningen van je omgeving: die reizen nergens in mee, en ze winnen het van alles wat een oplossing toekent. Daar doe je een lokale aanpassing die je niet wilt meeleveren.

Een rol kopiëren​

Twee rollen die in een of twee cellen verschillen, komen vaak voor — "Sales" en "Sales Manager", "Support" en "Support Lead" — en de tweede cel voor cel opnieuw toekennen is hoe je een beveiligingsrol krijgt die ergens van zijn broertje afwijkt waar niemand dat bedoelde.

  1. Open de rol waarmee je wilt beginnen.
  2. Selecteer Rol kopiëren.
  3. Geef de nieuwe rol een weergavenaam, de naam die men leest op de pagina Rollen en in de gebruikerslijst, bijvoorbeeld Buitendienst (alleen lezen).
  4. Geef de nieuwe rol een logische naam (met voorvoegsel, net als elk ander onderdeel dat deze oplossing maakt).
  5. Selecteer Kopiëren, pas de cellen aan die moeten verschillen, en klik op Opslaan.

De kopie neemt de machtigingen over zoals ze op het scherm staan, inclusief bewerkingen die je nog niet hebt opgeslagen — een rol kopiëren die je net aan het aanpassen was, hoort te kopiëren wat je voor je ziet.

Twee dingen doet het bewust niet:

  • Het kopieert de rol niet in andere omgevingen. Alleen in deze. Dezelfde rol betekent iets anders in Dev en Prod, dus "wat deze rol mag doen" kopiëren kan zinnigerwijs alleen betekenen wat hij hier mag doen.
  • Het kopieert niet wie de rol heeft. Dat zijn je mensen, en een rol dupliceren is geen reden om het lidmaatschap ervan te dupliceren. Wijs de nieuwe rol toe aan wie hem moet hebben (zie Een rol aan een gebruiker toewijzen).

Waarmee een nieuwe omgeving begint​

Alleen de rol Maker, met alles toegekend op alle tabellen en alle drie de platformbevoegdheden. Elke andere rol begint met niets — ook een rol die een gebruiker al heeft. Dat is bewust: toegang is iets wat iemand heeft toegekend, en "niets" is de enige standaard waarbij het veilig is als hij verkeerd is.

De tenantbeheerder staat helemaal niet in het raster. Hij heeft per definitie overal toegang en omzeilt dit scherm, zodat het intrekken van het verkeerde nooit kan betekenen dat je jezelf buitensluit van het scherm dat het zou herstellen.

Als een oplossing de rol meebrengt​

Een geïnstalleerde oplossing kan beveiligingsrollen meebrengen — de rol en wat die mag doen, want een app die zonder zijn rollen wordt geleverd, is een app die niemand kan gebruiken. Die toekenningen zijn al van kracht als de oplossing klaar is met installeren; niemand hoeft ze opnieuw toe te kennen.

Je kunt ze nog steeds wijzigen vanuit de oplossing Main, en jouw wijziging wint:

  • Maak een cel smaller of ruimer en jouw instelling geldt, wat de oplossing ook had ingesteld.
  • Zet een cel terug op Niet toegekend en hij blijft niet toegekend — de toekenning van de oplossing komt niet terug als je het scherm de volgende keer opent.
  • Werk de oplossing bij en je wijzigingen blijven. Een import brengt de eigen toekenningen van de oplossing up-to-date en laat de jouwe met rust.
  • Verwijder de oplossing en haar toekenningen gaan mee. Alles wat jij hebt ingesteld, blijft; een cel die je had gewijzigd, valt terug op jouw waarde, en een cel die alleen de oplossing toekende, wordt Niet toegekend.

Wie een rol heeft, maakt nooit deel uit van een pakket. Dat zijn je mensen, en de rol toewijzen is altijd iets wat iemand hier doet (zie Een rol aan een gebruiker toewijzen).

De beleidsregels, de smalste eerst​

Elk ervan kan worden gekozen, en elk ervan wordt afgedwongen:

BeleidBereikt
Geen recordsNiets. Een machtiging die zo is toegekend, doet niets — alleen handig om iets uit te zetten zonder de rij te verwijderen.
Records die ik bezitRecords die persoonlijk eigendom zijn van deze gebruiker.
Van mij en mijn teamsHet bovenstaande, plus records die eigendom zijn van een team waartoe hij behoort.
Records van mijn teamsRecords die eigendom zijn van een team waartoe hij behoort.
Mijn eenheidRecords die eigendom zijn binnen zijn eigen organisatie-eenheid.
Mijn eenheid en lagerZijn eenheid en elke eenheid eronder.
Mijn eenheid en hogerZijn eenheid en elke eenheid waar die via rapporteert.
Mijn hele takDe bovenste eenheid boven hem, en alles daaronder.
Elk recordDe hele omgeving.

Alles behalve Elk record hangt af van wie een record bezit en waar eenheden in de organisatie staan. De eigenaar van een record wordt ingesteld bij het aanmaken en kan daarna worden overgedragen (zie Wijzigen wie een record bezit); eenheden en teams zijn tabellen in de omgeving, dus je bouwt je organisatie daar op en de beleidsregels volgen haar.

De eenheid van een record is de eenheid van de eigenaar, vastgelegd bij het aanmaken en opnieuw telkens als het aan iemand anders wordt toegewezen. Verhuist iemand later naar een andere eenheid, dan gaat wat die al bezit niet mee; wijs die records opnieuw toe als ze moeten volgen. Records van iemand zonder eenheid worden door geen eenheidsbeleid bereikt.

Een beleid dat de engine niet kan evalueren, staat onder het raster maar kan niet worden geselecteerd — een toekenning die de engine niet kan evalueren, zou op dit scherm toegang tonen die de gebruiker in werkelijkheid niet heeft. Op dit moment is elk ingebouwd beleid evalueerbaar, dus daar verschijnt niets.

Wat een gebruiker ziet als een toekenning smal is​

Een gebruiker krijgt geen opdrachten te zien die zijn rol niet bereikt. Op een tabel waarin hij geen records kan aanmaken, is er geen knop Nieuw; op een tabel waaruit hij niet kan verwijderen, geen Verwijderen; en een tabel die hij mag lezen maar niet bijwerken, opent zijn records alleen-lezen, zonder Opslaan. Zo leest een smallere toekenning als een eenvoudigere app in plaats van als een muur van weigeringen — en de machtiging wordt nog steeds elke keer op de server gecontroleerd, wat het scherm ook besloot te tonen.

Problemen oplossen​

  • "… is geen machtiging die deze omgeving kan toekennen." — de tabel is verwijderd nadat de rol was geschreven. Open het scherm opnieuw en stel de toekenning opnieuw in.
  • "… staat er twee keer in." — een rol heeft een machtiging onder precies één beleid. Stel de cel één keer in.
  • Een gebruiker ziet nog steeds geen records nadat ik de rol heb toegekend. — controleer welke rol zijn token werkelijk draagt; een toekenning aan "Sales" doet niets voor een gebruiker wiens claim "sales" zegt. Heb je de rol aan een team gegeven, controleer dan of hij erin zit — onder Teams.
  • Er staat geen lijst met teams op het scherm. — de omgeving heeft er nog geen, of haar organisatiemodel is nog niet gevuld. Maak een team aan onder Teams en open de rol opnieuw.
  • Ik heb alles weggehaald en nu kan niemand de app gebruiken. — dat is wat het doet. Ken de rol opnieuw toe; als beheerder blijft je eigen toegang ongemoeid.
  • "Je hebt de bevoegdheid '…' niet in deze omgeving." — de persoon probeert een spreadsheet te importeren, of een oplossing te importeren of te exporteren, en zijn rol heeft daar geen vinkje bij. Vink het aan onder Platformbevoegdheden boven het raster.
  • "… is een platformbevoegdheid, dus die heb je wel of niet." — er is een bevoegdheid verzonden met een beleid erbij. Niets op het scherm kan dat doen; het komt uit een oplossingspakket dat er een noemde.
  • Het raster is leeg. — er is bovenaan het venster geen omgeving geselecteerd, of die omgeving heeft nog geen tabellen.
  • Een rol die ik had toegevoegd, is uit de lijst verdwenen. — je hebt hem opgeslagen zonder iets toe te kennen. Een rol staat in de oplossing omdat de oplossing hem iets toekent; voeg hem opnieuw toe en ken hem iets toe.
  • Ik heb de rol in Dev toegekend en in Prod is er niets veranderd. — dat klopt: machtigingen gelden per omgeving. Exporteer de oplossing en importeer haar in Prod (zie Een oplossing in een omgeving importeren), en precies daarvoor zet je de toekenningen in een oplossing.

Gerelateerde scenario's​