ADC Form-Based Authentifizierung an Backend-Server

Oft melden sich Benutzer am ADC mit ihren Zugangsdaten an und die dahinter liegenden Dienste benötigen aus Komfort- und Sicherheitsgründen ein Single-Sign-On (SSO). Unterstützt dabei das Backend-System Basic-Auth&Co ist die Integration des SSO meist mit einer einfachen Traffic-Policy erledigt. In diesem Artikel wird aber der Fall beschrieben, wenn das Backend-System nur Formbased-Authentifzierung verwendet.

 

Die passenden Parameter zu finden und Config zu erstellen ist hierbei ein wenig umfangreicher. Das Vorgehen ist in der Regel immer ähnlich, aber je nach Backend-Anwendung sind die Parameter grundlegend anders. In diese Beispiel soll SSO in TIBCO JasperReports ermöglicht werden.

 

Die Anmelde-Seite sieht dabei wie folgt aus:

Über die Developer-Tools des Browsers lassen sich dabei die Eingabe-Felder ausmachen - hier rot markiert. Für die Konfiguration ist der der "name" des Feldes von Bedeutung. "id" oder ähnliches kann ignoriert werden. Vorsicht: Das Feld "j_password" ist "hidden" im Browser. Dennoch wird es verwendet zur Übergabe der Zugangsdaten. Gefüllt wird das Feld durch "j_password_pseudo".

 

Als nächste wird ein Packet-Trace erzeugt vom Anmeldevorgang z.B. mit Wireshark. Dort kann gefiltert werden nach HTTP Verkehr und über die Funktion "Follow HTTP" kann im Klartext die Kommunikation analysiert werden. Kombiniert mit den Infos aus den Developer-Tools wird hier ersichtlich:

 

Die Login-Site/Referer und Content-Length:

 

Der "POST" mit dem die Zugangsdaten übergeben werden an "j_spring_security_check":

 

Die Einstiegsseite die prüft ob die Sitzung authentifiziert ist und ggf. über einen HTTP Code 302 weiterleitet an "/login.html":

 

Das Erfolgskriterium nach der erfolgreichen Authentifizierung ist das Setzen des Cookie "JSESSIONID":

 

Mit diesen Informationen kann eine Traffic Policy stellt werden mit einem Traffic Profile was auf ein Form SSO Profile verweis:

Die Response Size muss dabei etwas höher angegeben werden wie hier zu sehen. 

 

Gleichzeitig kann auch noch die Abmeldung erstellt werden damit das Sitzung-Cookie gelöscht wird wenn der Benutzer in der Anwendung auf Abmelden klickt.

Die beiden Traffic Policies anschließend binden an den Loadbalancer vServer für den Backend-Server und die Anmeldung/Abmeldung funktioniert wie gewünscht. Zur Kontrolle kann mittels Shell der Vorgang überprüft werden über das Kommando "nsconmsg -d current –g sso_".

 

In Zeile 10 wir protokolliert dass die Zugangsdaten erfolgreich übergeben wurden an das Backend-System: