Voor een rechtensysteem maak ik gebruikersgroepen aan waaraan gebruikers toegekend kunnen worden.
Ik ga even uit van 3 verschillende methodes voor het controleren van de gebruikersrechten.
Stel men zit in 3 verschillende gebruikersgroepen. Wat is dan een beter systeem voor het controleren op de gebruikersrechten?
Methode 1 noem ik maar ff de zeefmethode. Hierbij is geen gewicht gedefinieerd.
De zeefmethode controleert of je ergens in een gebruikersgroep zit die een bepaalde aktie toestaat. Zo ja, dan krijg je het recht die aktie uit te voeren.
Het voordeel hierbij is dat je je niet druk hoeft te maken dat je wel alle rechten aanvinkt die een persoon zou moeten hebben. Als hij die rechten op grond van een andere gebruikersgroep verdient is het ook goed.
Het nadeel is wel dat de controle enigszins ingewikkelder is dan bij Methode 2 en het is lastig om iemand recht over een bepaalde aktie te ontzeggen.
Methode 2 noem ik voor het gemak maar even de 'top-down' methode.
Hierbij krijgen de verschillende rechten een gewicht mee (kolom 1). Het zwaarste gewicht telt.
Het voordeel van deze methode is dat er slechts gekeken hoeft te worden naar welke gebruikersgroep het zwaarste weegt en vervolgens wat de permissies van deze groep zijn.
Het nadeel is dat, wil je mensen ook op grond van andere groepen toegang tot een bepaald item geven, je veel verschillende groepen moet maken die ieder precies zijn gespecificeerd.
Een derde methode is het gebruik van DON'T CARES. (X)
Hierbij geef je expliciet aan of een gebruiker een bepaalde aktie mag uitvoeren of niet.
Ook krijgen alle gebruikersgroepen dan een eigen gewicht.
Deze methode heeft mijn voorkeur maar heeft echter 1 nadeel:
In de vorige methodes kon je de rechten verkort noteren.
Een gebruiker die mag lezen, lopen en praten kan je noteren als 52
Kolom 1, lezen (1) + lopen (4) = 5
Kolom 2, praten = 2
De werking is simpel. Je mag iets of niet. "Don't cares" kennen we niet.
Is er een mogelijkheid om toch een soort van CHMOD systeem te hanteren i.c.m. Methode 3.
Ik breek er al een tijd mijn hoofd over maar echt verder kom ik niet.
Dmv de search ben ik wel wat topic tegengekomen die erop lijken maar niemand schijnt met dit probleem te hebben gezeten.
Ik ga even uit van 3 verschillende methodes voor het controleren van de gebruikersrechten.
Stel men zit in 3 verschillende gebruikersgroepen. Wat is dan een beter systeem voor het controleren op de gebruikersrechten?
Methode 1 noem ik maar ff de zeefmethode. Hierbij is geen gewicht gedefinieerd.
code:
1
2
3
4
5
6
7
| abcd --> akties ---- 1010 --> groep x 0011 --> groep y 1011 --> groep z ---- 1011 |
De zeefmethode controleert of je ergens in een gebruikersgroep zit die een bepaalde aktie toestaat. Zo ja, dan krijg je het recht die aktie uit te voeren.
Het voordeel hierbij is dat je je niet druk hoeft te maken dat je wel alle rechten aanvinkt die een persoon zou moeten hebben. Als hij die rechten op grond van een andere gebruikersgroep verdient is het ook goed.
Het nadeel is wel dat de controle enigszins ingewikkelder is dan bij Methode 2 en het is lastig om iemand recht over een bepaalde aktie te ontzeggen.
Methode 2 noem ik voor het gemak maar even de 'top-down' methode.
Hierbij krijgen de verschillende rechten een gewicht mee (kolom 1). Het zwaarste gewicht telt.
code:
1
2
3
4
5
| 3 1010 2 0011 1 1011 ---- 1010 |
Het voordeel van deze methode is dat er slechts gekeken hoeft te worden naar welke gebruikersgroep het zwaarste weegt en vervolgens wat de permissies van deze groep zijn.
Het nadeel is dat, wil je mensen ook op grond van andere groepen toegang tot een bepaald item geven, je veel verschillende groepen moet maken die ieder precies zijn gespecificeerd.
Een derde methode is het gebruik van DON'T CARES. (X)
code:
1
2
3
4
5
| 3 XX10 2 0X11 1 101X ---- 0010 |
Hierbij geef je expliciet aan of een gebruiker een bepaalde aktie mag uitvoeren of niet.
Ook krijgen alle gebruikersgroepen dan een eigen gewicht.
Deze methode heeft mijn voorkeur maar heeft echter 1 nadeel:
In de vorige methodes kon je de rechten verkort noteren.
code:
1
2
3
4
5
6
7
| -------------------
1 2
-------------------
1| lees | eet
2| schrijf | praat
4| loop | lach
------------------- |
Een gebruiker die mag lezen, lopen en praten kan je noteren als 52
Kolom 1, lezen (1) + lopen (4) = 5
Kolom 2, praten = 2
De werking is simpel. Je mag iets of niet. "Don't cares" kennen we niet.
Is er een mogelijkheid om toch een soort van CHMOD systeem te hanteren i.c.m. Methode 3.
Ik breek er al een tijd mijn hoofd over maar echt verder kom ik niet.
Dmv de search ben ik wel wat topic tegengekomen die erop lijken maar niemand schijnt met dit probleem te hebben gezeten.