Will man nur ein paar Kleinigkeiten am Design der Gateway Logon Page ändern, wie z.B. die Beschriftung der Password-Felder, geht das sehr gut indem man rewrite-Regeln einbaut. Damit erspart man sich die ganze Page als Custom Design implementieren zu müssen und es ist über Reboots und Upgrades persistent.
Ein Beispiel, getestet mit Netscaler 10.1:
add rewrite action AD_replace_rewrite_action replace_all "http.RES.BODY(120000).SET_TEXT_MODE(ignorecase)" "\"AD Password\'\"" -pattern "\"Password\"" -bypassSafetyCheck YES -refineSearch q/extend(50,50).REGEX_SELECT(re![ ]*\'[ ]*\+[ ]*_\(\"Password\"\)[ ]*!)/
add rewrite action OTP_replace_rewrite_action replace_all "http.RES.BODY(120000).SET_TEXT_MODE(ignorecase)" "\"Token Code:\'\"" -pattern "\"Password2\"" -bypassSafetyCheck YES -refineSearch q/extend(50,50).REGEX_SELECT(re![ ]*\'[ ]*\+[ ]*_\(\"Password2\"\)[ ]*!)/
add rewrite action AD_delete_rewrite_action delete_all "http.RES.BODY(120000).SET_TEXT_MODE(ignorecase)" -pattern "document.write(\' 1\');" -bypassSafetyCheck YES
add rewrite policy AD_rewrite_pol "http.req.url.path.endswith(\"vpn/login.js\")" AD_replace_rewrite_action
add rewrite policy OTP_rewrite_pol "http.req.url.path.endswith(\"vpn/login.js\")" OTP_replace_rewrite_action
add rewrite policy AD_delete_pol "http.req.url.path.endswith(\"vpn/login.js\")" AD_delete_rewrite_action
bind rewrite global AD_rewrite_pol 80 NEXT -type RES_OVERRIDE
bind rewrite global OTP_rewrite_pol 90 NEXT -type RES_OVERRIDE
bind rewrite global AD_delete_pol 100 NEXT -type RES_OVERRIDE
Statt einem globalen Binding kann man natürlich auch pro vServer unterschiedliche Anpassungen vornehmen.
Wenn die Anpassungen nicht sofort sichtbar werden ruhig mal prüfen ob der Netscaler Caching aktiviert hat, dies hat mich einige Minuten Fehlersuche gekostet… 😉