PHP Zentrale Benutzerverwaltung - Userdaten aus LDAP, SOAP, MySQL oder was auch immer

WhiZZler

Chancentod²
ID: 85586
L
6 Mai 2006
588
32
begrüße!

sorry erstmal wegen dem dämlich titel.. ich wusste nid, wie ich es beschreiben soll..

ich konzipiere gerade eine software für den einsatz an meiner uni.. die benutzerdaten werden hierbei an zentraler stelle verwaltet.. die benutzerdaten sind hierbei in einem LDAP gespeichert.. das LDAP steht allerdings hinter einer firewall, und man kommt nicht wirklich an die daten ran.. deswegen hat der cio der uni angeboten über SOAP einen webservice zur verfügung zu stellen, über den ich zu einer benutzer id die restlichen daten bekommen kann..

es sollen dann später beispielsweise dokumentenlisten erstellt werden, bei denen jeweils der ersteller mit angezeigt werden soll.. meine idee war es jetzt, das auslesen der benutzerdaten hinter einem interface zu kapseln, damit später neben den daten aus SOAP auch so einfach wie möglich auf daten aus einem LDAP oder was auch immer umgestellt werden kann..

mein problem ist es jetzt, dass das system so flexibel wie möglich sein soll und eventuell auch an anderen unis eingesetzt werden soll..
ich weiß vor allem nicht, wie ich es lösen soll, wenn daten aus einer anderen datenbank oder einer anderen tabelle kommen..

wenn ich das jetzt ebenfalls über das interface löse, dann habe ich unnötige queries.. wenn ich es jetzt aber hübsch über einen einzigen query mit einem join haben möchte, dann müsste ich jeden query ändern, an dem die benutzerdaten ausgelesen werden..

hat von euch vielleicht irgendjemand ne idee, wie man das möglichst schick aufbauen kann? ich hab mir schon einige gedanken dazu gemacht und mir fällt nur die lösung mit dem interface ein.. und das finde ich aufgrund der zusätzlichen queries eher suboptimal..
 
Also ich denke du kommst kaum drum rum eine extra query zum authentizieren des users hast. Nachdem du eine Anfrage gestellt hast (username + salted password hash) bekommst du vom server ein zeitlimitiertes Token mit dem du weitere Anfragen absetzen kannst.

Transport sollte bei der ganzen Sache nicht wirklich wichtig sein, SOAP hat nur ein schoenes extra: transport layer encryption :D