Skip to content
aaa netscaler
06.20112 min Lesezeit

Wie man NetScaler AAA Cookies entfernt

Authenticate, Authorize, Audit.

Nach dem Authentifizieren hat der Browser ein Cookie bekommen, mit dem er sich fortan ausweist und mit dem weitere Requests durchgelassen werden, solange das Session Timeout nicht erreicht oder der Browser geschlossen wurde (Session Cookie, d.h. gültig bis zum Schließen der Browser Session – das sind ALLE Fenster eines Browsers).

Cookies in einer AAA Session

Will man nun eine AAA Session gezielt beenden, etwa durch einen „Logout“ Button in der Anwendung, so müsste ja eigentlich einfach nur das Session Cookie gelöscht werden. Wie aber löscht man ein Cookie? Gar nicht, das tut der Browser, wenn es nicht mehr gültig ist (invalid). Wie also macht man ein Cookie ungültig? Indem man den Browser schließt – schließlich ist es ja ein Session Cookie. Es ist aber oftmals unzumutbar, dem Anwender zu sagen „um dich abzumelden, schließe einfach alle deine Browser-Fenster“.

Lösungsansatz: Javascript Cookie Manipulation

Javascript auf einer Logout-Seite, das mittels document.cookie das Cookie manipuliert, genauer gesagt sein Ablaufdatum in die Vergangenheit setzt.

Problem: Eine Abhängigkeit von einem Webserver wird hergestellt, auf dem die Logout-Seite liegt, evtl. Probleme beim Zugriff auf das Cookie (Seite muss innerhalb der Authentication Domain liegen und die Authentication Domain muss beim Manipulieren des Cookies angegeben werden). Ist aber passend zum Invalidieren von Session Cookies der Anwendung, was man ja im selben Schritt vielleicht auch machen möchte – jeder killt seine Cookies selbst, siehe Ansatz 2.

Lösungsansatz: NetScaler Rewrite Policy

An den VServer des NetScalers wird eine Rewrite (Response) Policy gebunden, die auf eine passende Bedingung matcht, z.B. den Aufruf einer bestimmten Seite (ausgelöst durch den Klick auf „Logout“). Die dadurch ausgelöste Action ist vom Typ INSERT_HTTP_HEADER und setzt einen Header namens „Set-Cookie“ mit dem Inhalt:

„NSC_TMAA=nothing;expires=Thursday, 1 Jan 1970 00:00:00 GMT;path=/;domain=Authdomain.aus.dem.AAA.VServer“

Da die Policy am selben VServer hängt, ist der Zugriff auf die Cookie-Domain sichergestellt. Die Bedingungen bleiben die Gleichen – so kümmert sich der NetScaler aber selbst um das von ihm gesetzte Cookie. Das existiert nämlich bereits mit genau diesen Parametern in dieser Domain, nur ohne Ablaufdatum. Durch das Set-Cookie wird dieses überschrieben, damit ist das Cookie ungültig und wird vom Browser verworfen. Die in dieser Response ausgelieferte Seite wird noch dargestellt, der nächste Request aber wird wieder auf den AAA Server umgeleitet.

Kudos an die Kollegen der Hellmann Worldwide Logistics für die Zusammenarbeit! 😉
Brauchen Sie Beratung zu NetScaler-Fragen? Kontaktieren Sie uns gerne unverbindlich hier.

KOMMENTARE

VERWANDTE ARTIKEL