datastructuur voor users, groups, rechten

Pagina: 1
Acties:

  • wizl
  • Registratie: Maart 2001
  • Laatst online: 27-02-2023
Welke datastructuur gebruikt men, of komt in aanmerking voor het opslaan van rechten van gebruikers, die op hun beurt rechten erven uit groepen etc. Zeg maar het rechtensysteem van bijv. NT, of de NDS van NOVELL.

Zijn dit linked lists, binary-tree's of gewoon 1 op 1 koppelingetjes in een databeestje zeg maar. Iemand ervaring? Of enig id? ;)

Verwijderd

active directory's toch?

Verwijderd

voor windows 2000 active directory

  • Apollo_Futurae
  • Registratie: November 2000
  • Niet online
relationeel model lijkt mij het meest logisch

Pas de replâtrage, la structure est pourrie.


Verwijderd

Dit is heel erg afhankelijk van de situatie.

Kleine websites/applicaties met kleine userbases:
.htacces (Apache), web.config (IIs/ASP.Net), textfiles of hardcoded

Als username/passwords/groups binnen verschillende applicaties/websites/systemen gebruikt moeten worden:
Directory Services (Active Directory (Win2000), NDS (Novell), OpenLDAP(*nix))

Overig:
relationele databases

HTH :)

[ Voor 0% gewijzigd door Verwijderd op 20-09-2002 17:22 . Reden: Opmaak ]


  • wizl
  • Registratie: Maart 2001
  • Laatst online: 27-02-2023
Okay, dat begrijp ik, een Active Directory, of Novell Directory Services zijn implementaties van rechtensystemen . . .
Mijn vraag is eigenlijk. Hoe slaan de programmeurs van deze rechtensystemen hun gegevens efficient op?

Verwijderd

wizl schreef op 21 september 2002 @ 00:55:
Okay, dat begrijp ik, een Active Directory, of Novell Directory Services zijn implementaties van rechtensystemen . . .
Uhm ... nee. Directory Services zijn een soort databases met een hierarchische structuur. Ze zijn om die reden heel erg geschikt om parent-child relaties in te maken, zoals een gebruiker die tot een groep behoort.
Mijn vraag is eigenlijk. Hoe slaan de programmeurs van deze rechtensystemen hun gegevens efficient op?
Wat wil je nou precies weten?

Met betrekking tot Directory Services om je vaak LDAP tegen. Hier wat info over die twee begrippen.
- http://www.onlamp.com/pub/a/onlamp/2001/08/16/ldap.html: Wat is LDAP, wat kan ik ermee, op pagina 2 opmerking over Access, Authentication en Authorisation
- http://ldapman.org/articles/intro_to_ldap.html: Waarom LDAP / DS, hoe te gebruiken

Enjoy :)

Verwijderd

nonsens

Verwijderd

[quote]Verwijderd schreef op 21 september 2002 @ 01:29:

sorry, dom gelul van me

  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

Verwijderd schreef op 21 september 2002 @ 01:29:
Hoe kan je dat als beroep hebben, en deze vraag stellen??
Waar slaat dat nou weer op... je kan toch best een vraag stellen. Je leert zeg maar niet *alles* hoor, dat is niet te doen. Geen enkele van mijn studie boeken waar dit bv in staat. Zou wel iets kunnen bedenken, maar ff checken voor dat je begint te tikken is wel verstandig.

  • Knutselsmurf
  • Registratie: December 2000
  • Laatst online: 17:40

Knutselsmurf

LED's make things better

Zoijar schreef op 21 september 2002 @ 01:42:
[...]


Waar slaat dat nou weer op... je kan toch best een vraag stellen. Je leert zeg maar niet *alles* hoor, dat is niet te doen. Geen enkele van mijn studie boeken waar dit bv in staat. Zou wel iets kunnen bedenken, maar ff checken voor dat je begint te tikken is wel verstandig.
In dat geval is het gebruikelijk dat je laat zien wat je van plan bent te gaan doen en daar commentaar op vraagt. Daarom, aan topicstarter: had je al iets in gedachten?

- This line is intentionally left blank -


  • The - DDD
  • Registratie: Januari 2000
  • Laatst online: 17-08 22:44
Onder windows wordt vaak de volgende taktiek gebruikt. (zowel onder active directory als simpele domein rechten):

Alle zaken die op een systeem kunnen worden onderverdeeld in groepen. Bijvoorbeeld: DB-Lees, DB-schrijf, DB-beheer. en Sys-Gebruik, Sys-Backup, Sys-Beheer.

Zo heb je dus voor alle handelingen die op een systeem kunnen gebeuren groepen. In elk van deze groepen breng je alle benodigde acties onder die een gebruiker mag doen. Dit kunnen er heel wat zijn, voor bijvoorbeeld het backuppen van een systeem zul je veel mogen, maar toch ook niet alles. Maar je mag wel weer meer dan een normale gebruiker. Gevolg van zo'n systeem is dat het even tijd kost om de rechten goed in groepen te verdelen, maar als je dit eenmaal gedaan hebt, dan kun je aan de groepen waar een gebruiker lid van is heel snel zien wat hij of zij wel/niet mag. En het is super snel aan te passen, want zeg nou zelf, lid zijn van een tiental groepen is heel wat overzichtelijker dan lid het bezit hebben van tientallen, zo niet honderden kleine rechten. Daarnaast is het netwerk breed aan te passen dat er bijvoorbeeld een database is verplaats van het ene systeem naar een ander systeem. Gewoon de relevante groepen aanpassen en iedereen is op de hoogte, dit in tegenstelling tot iedere gebruiker individueel aanpassen.

Maar dit gaat natuurlijk meer over de logische indeling van je gebruikers, groepen en rechten. Niet zozeer over het fysieke niveau. OVerigens is een systeem zoals ik hierboven bedschreef zo'n beetje bij elke zichzelf respecterende organisatie in gebruik. Scheelt gewoon zeeën van tijd.

Verwijderd

Onder NT/2000/XP worden dit soort zaken opgeslagen in de SAM. Dit is een tree in het register. Als je dus wilt weten hoe dit precies opgeslagen wordt moet je kijken
1) hoe deze informatie in het register wordt opgeslagen
2) hoe de registerdatabase wordt geserialiseerd in het geheugen/op schijf.
Laatste moet wel relatief eenvoudig te vinden zijn op internet, voor het eerste zal je een tooltje moeten vinden dat de SAM in het register laat zien (doen regedit en regedt32 niet).

  • wizl
  • Registratie: Maart 2001
  • Laatst online: 27-02-2023
Knutselsmurf schreef op 21 september 2002 @ 02:09:Daarom, aan topicstarter: had je al iets in gedachten?
Natuurlijk :P Ik wil in een eigen applicatie een rechtenstructuur gaan implementeren naar het Users/Groups model. Ik begrijp dus de logische 'structuur' van een Active Directory (of soortgelijke implementaties). Ik vraag me nu dus af, hoe ik e.e.a. zal gaan opslaan. Vandaar de vraag: "Welke datastructuur", met als voorbeelden 'linked-list', 'binary tree' etc.

  • Apollo_Futurae
  • Registratie: November 2000
  • Niet online
nogmaals: het relationele model lijkt mij hier het beste.
zo'n rechtensysteem met groepen is immers perfect te vertalen naar een relationele structuur.
je database zorgt dan voor de meest efficiente lowlevel datastructuur.

Pas de replâtrage, la structure est pourrie.


  • zneek
  • Registratie: Augustus 2001
  • Laatst online: 08-02-2025
ik heb zelf onlangs het volgende geimplementeerd:

Alle functies opgesomd in een tabel FUNCTIES. Een tabel ROLLEN gemaakt. FUNCTIES zijn volgens een veel-op-veel te koppelen aan ROLLEN en gebruikers zijn weer te koppelen aan een rol. In mijn geval aan 1 ROL omdat de structuur niet te ingewikkeld hoefde. Maar maak die koppeling veel-op-veel en maak een veel-op-veel tussen functies en gebruiker en je kan alle kanten op. Maak eventueel de FUNCTIES en ROLLEN tabellen nog hierarchisch en .... nou ja, dan wordt het wel erg ingewikkeld. Tis maar net wat je nodig hebt. Goed modelleren dus.

Verwijderd

Je kan er voor kiezen om EEN entiteit te definieren voor users en groups, zodat je groups ook weer andere groups kunnen bevatten (iets wat ik altijd erg mis in NT4). Verder is misschien een functionele scheiding interessant : je definieert groepen naar de rechtenstructuur en groepen naar de functionele aspecten en assigned de functionele groepen aan de "rechten" groepen
ff vb :

groep c_read
groep c_write
groep users (toevoegen aan c_read)
groep admins (toevoegen aan c_read en c_write)

Zo heb je minimale overhead bij het parsen van je lijsten met toegangsinformatie (onder NT zijn dit ACL's) en hoef je nooit meer rechten op een object te wijzigen, alleen de samenstelling van de "rechten" groepen.

just my 2 (euro)cents...
Pagina: 1