| | | | |
| |||||||
| PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen |
|
| | LinkBack | Themen-Optionen | Thema bewerten |
| | |
| Erfahrener Benutzer Registriert seit: 08.08.2009
Beiträge: 195
PHP-Kenntnisse: Fortgeschritten ![]() | Hallo Zusammen Ich habe die Forensuche bereits verwendet sowie google mit den entsprechenden Begriffen durchlöchert. Verschiedene Konzepte mir angesehen und bin mir jetzt nicht sicher wie ich die Rechteverwaltung aufbauen soll. Aus dem Beitrag aus diesem Forum hier: http://www.php.de/php-einsteiger/528...erstellen.html Geht eigentlich nur hervor dass man Rechte nur Benutzern hinzufügen soll wenn es sein muss und ansonsten via Gruppen oder Rollen. Soweit klar, kenne ich von der UAC bei Windows Domänen Infrastrukturen. Einen etwas anderen Ansatz habe ich in diesem Artikel hier gefunden: Kurzfassung: Es existieren gezielte Berechtigungen auf Funktionen an bestimmten Stellen in der Anwendung. Artikel erstellen im Blog unterscheidet sich von Artikel erstellen in den News wie folgt: - webApp.News.Article.Create - webApp.Blog.Article.Create Diese "Funktionen/Rechte" werden dann an Rollen, Gruppen oder User zugeteilt. Der Ausführliche Artikel zum nachlesen: http://blog.wolff-hamburg.de/archive...anagement.html Was haltet Ihr von dieser Idee? Es ist ein anderer Ansatz aber scheint mir durch seine Einfachheit einen grossen Vorteil mitzubringen. Gerade wenn es darum geht "Funktionsberechtigungen" zu verwalten und nicht einfach Berechtigungen auf eine Datei oder einen Eintrag in der Datenbank. Ich bin an einer Webanwendung bei der ich grundsätzlich zwischen drei Berechtigungstypen unterscheide: Funktionsberechtigungen Können durchaus mit Rollen verwalten werden ( z.Bsp. Neue User erstellen, ein Projekteröffnen etc. ) Rollen: Administrator, Projektleiter, Mitarbeiter, Gast etc. Aktionssberechtigungen Der User darf eine Datei hochladen, er darf eine bestehende Datei durch eine neue Version ersetzen, er darf eigene Dateien löschen etc. Könnte man mit Gruppen definieren. Zugriffsberechtigungen Ein User der im System arbeitet und die Aktionsberechtigung zum hinzufügen neuer Dateien hat darf selber definieren ob seine Datei nur gelesen, bearbeitet oder gelöscht werden darf. Ich habe also drei verschiedene Punkte wie ich Rechte behandeln und verarbeiten will. Spricht etwas dagegen Rollen + Gruppen zu mischen? In meinem Fall würde ich die Rollen ja nicht als "Pseudogruppen" missbrauchen sondern als solche einsetzen. Und wenn, wie setze ich es am besten um? Der Ansatz von Markus auf Wolff Hamburg wo beim login die Rechte geladen werden und mit "natürlichenbezeichnungen" alle Rechte zur Verfügung stehen anstatt globalen "Funktionen" ( wie lesen, schreiben etc. ) gefällt mir. Ich mach mir aber Sorgen dass ich mir damit flexibilität verbaue. Beispielsweise könnte man auch den Gedanken verfolgen dass Grundsätzlich nur Rollen existieren, und auf Basis dieser alle Rechte gegeben sind und man den Ansatz der restrektiven Berechtigungsvergabe verfolgt und nur noch verbietet was man muss. Wie würdet Ihr das umsetzen oder habt ihr vielleicht weitere Links zum Thema? Vielen Dank und schönen Feierabend! eXe
__________________ It's not a bug. It's a feature! |
| | |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Erfahrener Benutzer Registriert seit: 08.08.2009
Beiträge: 195
PHP-Kenntnisse: Fortgeschritten ![]() | Hey mimomamu Danke für deine Antwort. Ich hab mir jetzt nochmal Gedanken gemacht dazu und nachdem ich mein Whiteboard nun zum hundertsten mal überkribelt habe bin ich zu folgendem Lösungsansatz gekommen. Grundsätzliche Funktionsrechte werden in einer Tabelle wie folgt gespeichert: Code: +----+-------------+ | ID | rightCode | +----+-------------+ | 1 | userNew | | 2 | fileDelete | | 3 | blogEdit | +----+-------------+ Code: +----+---------------+ | ID | roleName | +----+---------------+ | 1 | Administrator | | 2 | Member | | 3 | Guest | +----+---------------+ Nun kommen wir zur eigentlichen Rechtetabelle. Code: +----+--------------------------------------+ | ID | rightID | roleID | userID | objectID | +----+--------------------------------------+ | 1 | 1 | 2 | NULL | NULL | | 2 | 1 | 3 | NULL | NULL | | 3 | 1 | NULL | 5 | NULL | +----+--------------------------------------+ 1. Grundsätzlich ist jede Funktion auf jedem Objekt für jeden Benutzer erlaubt. 2. Das Vererben von Rechten ist restrektiv. Eine Sperrung kann nicht aufgehoben werden, weder vererbt noch direkt zugewiesen. Ausgehend von diesem Ansatz sehen wir im Obigen Beispiel dass den Rollen Member und Guest das erstellen eines neuen Users verboten ist. Ebenfalls existiert ein Verbot zum erstellen neuer Benutzer für den User mit der ID 5. Das heisst ich kann dem Benutzer mit ID 5 die Rolle des Administratoren zuweisen und explizit das Recht zur Erstellung neuer Benutzer sperren. Die Spalte objectID wird dann dazu verwendet einer Rolle oder einem einzelnen Benutzer z.Bsp. das Recht fileDelete auf einer einzelnen Datei zuzuweisen. in der Praxis sieht es dann so aus: PHP-Code: Was haltet ihr von diesem Konzept? Grüsse eXe
__________________ It's not a bug. It's a feature! |
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| http://www.php.de/php-fortgeschrittene/72418-rechteverwaltung-mal-anders-beleuchtet.html, rechteverwaltung, php rechteverwaltung, rechteverwaltung domäne, php gruppenverwaltung, domain rechte windows verwalten berechtigungskonzept 2010, login php rechteverwaltung, php gruppen verwaltung, rollen berechtigungen verwalten, php rollen gruppen, php rechte verwaltung login, rechteverwaltung in php, php rechte verwaltung, aktionsberechtigung wiki, login php mit gruppen, php rechteverwaltung gruppen für forum, rechteverwaltung php, rollenverteilung und rechteverwaltung php, \rechteverwaltung in php, php: rollenbasiertes login |