Hallo Zusammen,
ich arbeite gerade für meine Firma an einem zentralisierten Loginsystem für all meine Webapplikationen bei der im Moment alle Apps ein seperates Loginsystem haben - was wiederum für die Benutzer extrem viel Aufwand bei Passwortänderungen usw. verursacht.
Deswegen war der Plan, ein zentrales Login für alle Applikation zu basteln um so manchen Komfort zu erlangen (SSO, ein Benutzer, ein Passwort, etc.) und um den administrativen Aufwand zu verringern.
So, das Konzept und ein erster Prototyp davon steht: Die Rechte für die Applikationen basieren auf Gruppen oder Benutzern - deren IDs benötigt werden.
Jetzt gehts darum die Struktur in einer Datenbank - in meinem Fall MySQL - zu managen. Wie man ich das am schlauesten?
Hier mal mein Konzept wie ich es bisher habe:
2 Tabellen, eine für die Benutzer - eine für die Gruppen. (siehe die 2 angehängten Grafiken)
Die Benutzer haben ein feld "groups" - hier speichere ich im Moment alle GruppenIDs mit leerzeichen getrennt ab - lustigerweise passiert das ganze auch nochmal in der gruppentabelle in der ich die "members", also die userIDs - per leerzeichen getrennt - mit abspeichere...
Ich seh aber jetzt schon in meinem Konzept, dass ich 1. ne fette Redundanz hab (weil ich sowohl bei den users als auch bei den gruppen datensätzen die Rechte speichere...
Ich hab mir schon überlegt ne extra Tabelle dafür anzulegen, die aus 2 feldern besteht, also "uid" und "gid", und dann eben die Rechte für die Gruppen darin abspeichere...
so, das Ding ist jetzt nur - ich will unbedingt "manager" für die gruppen haben, was natürlich auch unter Umständen mehrere Personen sein können" - soll ich dafür dann nochmal ne extra Tabelle mit diesen 2 feldern anlegen?
Und last but not least - wie frage ich dann am schlauesten am effizientesten diese Rechte ab? Im Moment isses für mich leicht, ein Datensatz abfragen und meine semi-serialisierten Felder einfach mit php explode(' ', $row['feld']); zu nem Array wandeln...
P.S.: Ich muss gleich dazu sagen: Ich hab wohl paar Mal den Begriff "Normalform" rumfliegen sehen, hab aber keinen Plan davon
Ich bedanke mich schonmal im vorraus für jede kompetente Hilfe die ihr mir geben könnt.
ich arbeite gerade für meine Firma an einem zentralisierten Loginsystem für all meine Webapplikationen bei der im Moment alle Apps ein seperates Loginsystem haben - was wiederum für die Benutzer extrem viel Aufwand bei Passwortänderungen usw. verursacht.
Deswegen war der Plan, ein zentrales Login für alle Applikation zu basteln um so manchen Komfort zu erlangen (SSO, ein Benutzer, ein Passwort, etc.) und um den administrativen Aufwand zu verringern.
So, das Konzept und ein erster Prototyp davon steht: Die Rechte für die Applikationen basieren auf Gruppen oder Benutzern - deren IDs benötigt werden.
Jetzt gehts darum die Struktur in einer Datenbank - in meinem Fall MySQL - zu managen. Wie man ich das am schlauesten?
Hier mal mein Konzept wie ich es bisher habe:
2 Tabellen, eine für die Benutzer - eine für die Gruppen. (siehe die 2 angehängten Grafiken)
Die Benutzer haben ein feld "groups" - hier speichere ich im Moment alle GruppenIDs mit leerzeichen getrennt ab - lustigerweise passiert das ganze auch nochmal in der gruppentabelle in der ich die "members", also die userIDs - per leerzeichen getrennt - mit abspeichere...
Ich seh aber jetzt schon in meinem Konzept, dass ich 1. ne fette Redundanz hab (weil ich sowohl bei den users als auch bei den gruppen datensätzen die Rechte speichere...
Ich hab mir schon überlegt ne extra Tabelle dafür anzulegen, die aus 2 feldern besteht, also "uid" und "gid", und dann eben die Rechte für die Gruppen darin abspeichere...
so, das Ding ist jetzt nur - ich will unbedingt "manager" für die gruppen haben, was natürlich auch unter Umständen mehrere Personen sein können" - soll ich dafür dann nochmal ne extra Tabelle mit diesen 2 feldern anlegen?
Und last but not least - wie frage ich dann am schlauesten am effizientesten diese Rechte ab? Im Moment isses für mich leicht, ein Datensatz abfragen und meine semi-serialisierten Felder einfach mit php explode(' ', $row['feld']); zu nem Array wandeln...
P.S.: Ich muss gleich dazu sagen: Ich hab wohl paar Mal den Begriff "Normalform" rumfliegen sehen, hab aber keinen Plan davon
Ich bedanke mich schonmal im vorraus für jede kompetente Hilfe die ihr mir geben könnt.