Tomcat und Active Directory

Screenshot AD

Die Aufgabe: eine Web-Anwendung soll mit den Daten aus einem Active Directory geschützt werden.

Die Lösung: im Actice Directory wird eine Organisational Unit (OU) angelegt. In dieser werden dann Gruppen definiert, welche den späteren „Rollen“ entsprechen. Den Gruppen ordnet man die Benutzer zu, welche sich im Kontext „der Rolle“ anmelden können.

Screenshot NetBeansIn NetBeans über das Fenster Projects den Knoten Configuration File vom Projekt öffnen und die Datei context.xml laden. Diese Datei konfiguriert die Anwendung innerhalb des Tomcat und wird später mit verteilt. In ihr wird ein neuer Realm angelegt, der die Verbindung zum Active Directory definiert.

[code lang=“xml“]


[/code]

Der Realm definiert eine Verbindung zum Server ad.pokolm.de und meldet sich mit connectionName und connectionPassword am Active Directory an.

Die Benutzer (und damit das Kennwort) finden sich unterhalb von userBase. Als Benutzername bei der Web-Anwendung kommt sAMAccountName zum Einsatz.

Die Rollen/Gruppen werden unterhalb von roleBase definiert. Dem Benutzer wurde die Rolle zugewiesen, wenn er ein Attribut member innerhalb der Gruppe ist.

Wer mit diesen Werten nicht anfangen kann, installiert sich den LDAPBrowser und verbindet sich mit dem Active Directory.

In unserem Beispiel wurde eine Rolle „miniweb“ mit 2 Benutzern angelegt.

Screenshot LDAPBrowser

Fehlt nur noch die Security Constraint, die den Realm „ActiveDirectory“ nutzt. Diese wird in der web.xml definiert (Fenster Projects, Configuration File).

Screenshot NetBeans

Im Bereich Security die Login Configuration umstellen (Basic und Realm Name: ActiveDirectory). Unter Security Roles den Role name „miniweb“ hinzufügen. Mit „Add Security Constraint“ eine neue Definition erzeugen und konfigurieren. Als Role Name(s) „miniweb“ verwenden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

This site uses Akismet to reduce spam. Learn how your comment data is processed.