Ich versuche, eine gute Möglichkeit zu finden, Authentifizierung und Autorisierung zu tun. Hier ist was ich habe. Kommentare sind willkommen und was ich mir erhoffe.Autorisierung System Design Frage
Ich habe PHP auf einem Mac-Server. Ich habe Microsoft AD für Benutzerkonten.
Ich verwende LDAP, um das AD abzufragen, wenn sich der Benutzer im Intranet anmeldet.
Meine Entwurfsfrage betrifft, was mit dieser AD-Information zu tun ist. Es wurde von einem Mitarbeiter vorgeschlagen, im AD eine Namenskonvention zu verwenden, um eine zwischengeschaltete Datenbank zu vermeiden. Zum Beispiel habe ich eine Webseite, personal_payroll.php. Ich bekomme die URL und mit der URL und dem AD-Benutzer Abfrage der AD für die Gruppe personal_payroll. Wenn sich der angemeldete Benutzer in dieser Gruppe befindet, ist er berechtigt, die Seite anzuzeigen. Ich müsste eine Gruppe für jede Seite oder zumindest Benutzer der Benutzerdomäne für die generische Authentifizierung haben.
Es wird schwieriger mit Kontrollen auf einer Seite. Angenommen, es gibt eine Schaltfläche auf einer Seite oder einem Raster, nur Manager können dies sehen. Ich würde personal_payroll_myButton als Gruppe in meinem AD benötigen. Wenn der Benutzer in dieser Gruppe ist, erhalten sie die Schaltfläche. Ich könnte viele Gruppen haben, wenn eine Seite mehrere verschiedene Berechtigungsstufen hat.
Ja, das wäre mein AD sehr groß sein, aber wenn ich diese etwas anderes wird nicht tun, ob es sich um MySQL (oder ein anderer db), eine Textdatei, die httpd.conf usw.
Ich würde eine generische php funciton IsAuthorized für die verschiedenen Elemente haben, die den URL- oder Kontrollnamen und den authentifizierten Benutzer übergibt.
Gibt es etwas in sich Falsches mit der Verwendung einer Namenskonvention für Sicherheit wie diese und die Verwendung der AD als dieses Repository? Ich muss irgendwo bleiben. Warum nicht AD?
Vielen Dank für Ihre Kommentare.
EDIT: Denken Sie, dass dieses Schema wegen der LDAP-Aufrufe in superlangsame Seiten resultieren würde?
EDIT: Ich kann nicht die erste Person sein, die jemals darüber nachdenkt. Irgendwelche Gedanken dazu sind geschätzt.
EDIT: Vielen Dank an alle. Es tut mir leid, dass ich Ihnen nicht mehr Punkte für die Beantwortung geben konnte. Ich musste einen auswählen.