Hallo,
praktisch jede Anwendung, die von mehreren Benutzern verwendet werden kann, braucht auch eine Benutzerverwaltung. Viele Anwendungen bringen ihre eigene Benutzerverwaltung mit und einige verlassen sich auf die Benutzerverwaltung des Anwendungsservers. Letzteres finde ich deutlich eleganter als in jeder Anwendung das Rad neu zu erfinden und den Nutzer schlimmstenfalls zur wiederholten Eingabe von Name und Passwort zu zwingen.
Die in Anwendungsservern eingebaute Benutzerverwaltung scheint mir nicht dafür ausgelegt zu sein, um sich Nutzer in den Anwendungen (z. B. ein Forum, Shop ...) selbst registrieren zu lassen. Typischerweise wird man diese Nutzer also in einer "normalen" Datenbank speichern. Bloß diese Datenbank könnte man dann über JAAS an den Anwendungsserver anbinden. Dieser Verbindungscode wäre wohl aber an einen bestimmten Server gebunden, aber da das nicht so schwierig sein sollte, wäre das nicht weiter tragisch.
Erschwerend hinzu kommt, dass auch noch verschiedene Authentifizierungsverfahren wie Passwort, OpenID und LDAP-Authentifizierung unterstützt werden sollen.
Im Moment stelle ich mir eine kleine Webanwendung vor, mit der man Nutzer, Gruppen und Rollen verwalten kann. Als Standardverfahren würde diese Anwendung auch die Authentifizierung mit Passwort unterstützen. Wenn eine Anwendung eine Authentifizierung eines Nutzers benötigt, würde sie sich aber nicht direkt an die Nutzerverwaltung sondern an einen Zentralen Dienst wie CAS wenden. Der CAS-Server würde wiederum bei Passwort-Authentifizierung die Benutzerverwaltung fragen und bei anderen Verfahren einen entsprechenden anderen Dienst.
Der Ablauf sieht prinzipiell so aus, wobei am Ende mehrere Verfahren nebeneinander stehen:
Browser -> Web-Anwendung -> CAS -> Nutzerverwaltung | OpenID-Anbieter | LDAP ...
Wie gestaltet man am besten die Nutzerverwaltung, wenn man sie vom Anwendungsserver trennt? Gibt es dafür fertige Ansätze? Ich denke da an etwas schlankes und nicht etwas monströses wie den Sun Identity Manager. Etwas, das jeder Entwickler eines Forums, Blogs, Shops ... als standardmäßige Benutzerverwaltung mit ausliefern könnte, so dass mehrere Anwendungen den Datenbestand nutzen können und nicht jedesmal das Rad neu erfunden werden muss.
praktisch jede Anwendung, die von mehreren Benutzern verwendet werden kann, braucht auch eine Benutzerverwaltung. Viele Anwendungen bringen ihre eigene Benutzerverwaltung mit und einige verlassen sich auf die Benutzerverwaltung des Anwendungsservers. Letzteres finde ich deutlich eleganter als in jeder Anwendung das Rad neu zu erfinden und den Nutzer schlimmstenfalls zur wiederholten Eingabe von Name und Passwort zu zwingen.
Die in Anwendungsservern eingebaute Benutzerverwaltung scheint mir nicht dafür ausgelegt zu sein, um sich Nutzer in den Anwendungen (z. B. ein Forum, Shop ...) selbst registrieren zu lassen. Typischerweise wird man diese Nutzer also in einer "normalen" Datenbank speichern. Bloß diese Datenbank könnte man dann über JAAS an den Anwendungsserver anbinden. Dieser Verbindungscode wäre wohl aber an einen bestimmten Server gebunden, aber da das nicht so schwierig sein sollte, wäre das nicht weiter tragisch.
Erschwerend hinzu kommt, dass auch noch verschiedene Authentifizierungsverfahren wie Passwort, OpenID und LDAP-Authentifizierung unterstützt werden sollen.
Im Moment stelle ich mir eine kleine Webanwendung vor, mit der man Nutzer, Gruppen und Rollen verwalten kann. Als Standardverfahren würde diese Anwendung auch die Authentifizierung mit Passwort unterstützen. Wenn eine Anwendung eine Authentifizierung eines Nutzers benötigt, würde sie sich aber nicht direkt an die Nutzerverwaltung sondern an einen Zentralen Dienst wie CAS wenden. Der CAS-Server würde wiederum bei Passwort-Authentifizierung die Benutzerverwaltung fragen und bei anderen Verfahren einen entsprechenden anderen Dienst.
Der Ablauf sieht prinzipiell so aus, wobei am Ende mehrere Verfahren nebeneinander stehen:
Browser -> Web-Anwendung -> CAS -> Nutzerverwaltung | OpenID-Anbieter | LDAP ...
Wie gestaltet man am besten die Nutzerverwaltung, wenn man sie vom Anwendungsserver trennt? Gibt es dafür fertige Ansätze? Ich denke da an etwas schlankes und nicht etwas monströses wie den Sun Identity Manager. Etwas, das jeder Entwickler eines Forums, Blogs, Shops ... als standardmäßige Benutzerverwaltung mit ausliefern könnte, so dass mehrere Anwendungen den Datenbestand nutzen können und nicht jedesmal das Rad neu erfunden werden muss.
Zuletzt bearbeitet: