IT Blog | michael wessel

NetScaler Gateway: Customizing SmartAccess | michael wessel Blog

Geschrieben von Team von michael wessel | 08.2014

Hier geben wir Ihnen noch ein paar Anpassungen an die Hand, um SmartAccess/Clientless Access Optionen zu beschränken.

Hierbei werden – wieder Reboot- und Upgrade-sicher – die Auswahlmöglichkeiten beschränkt, deren Beschreibung geändert und im Clientless VPN der Tab für Dateifreigaben ausgeblendet sowie die eigenen Bookmarks entfernt.
Getestet mit Netscaler 10.5 Build 50.9.nc

Anpassung des SmartAccess vom NetScaler Gateway

Ausblenden der Option für ein vollständiges SSL-VPN

Aufbau der Action

add rewrite action rw_act_client_choice_1 replace_all „http.RES.BODY(120000).SET_TEXT_MODE(ignorecase)“ „\“if(errcookie.indexOf(\’agent\‘)==2)\““ -pattern „if(errcookie.indexOf(\“agent\“)!=-1)“

add rewrite action rw_act_client_choice_2 replace_all „http.RES.BODY(120000).SET_TEXT_MODE(ignorecase)“ „\“if(errcookie.indexOf(\’java\‘)==2)\““ -pattern „if(errcookie.indexOf(\“java\“)!=-1)“

add rewrite action rw_act_client_choice_3 replace_all „http.RES.BODY(120000).SET_TEXT_MODE(ignorecase)“ „\“if(errcookie.indexOf(\’plugin\‘)==2)\““ -pattern „if(errcookie.indexOf(\“plugin\“)!=-1)“

add rewrite action rw_act_client_choice_4 replace_all „http.RES.BODY(120000).SET_TEXT_MODE(ignorecase)“ „\“if(errcookie.indexOf(\’mac\‘)==2)\““ -pattern „if(errcookie.indexOf(\“mac\“)!=-1)“

Aufbau der Policy

add rewrite policy rw_pol_client_choice_1 „http.req.url.path.endswith(\“vpns/choices.html\“)“ rw_act_client_choice_1

add rewrite policy rw_pol_client_choice_2 „http.req.url.path.endswith(\“vpns/choices.html\“)“ rw_act_client_choice_2

add rewrite policy rw_pol_client_choice_3 „http.req.url.path.endswith(\“vpns/choices.html\“)“ rw_act_client_choice_3

add rewrite policy rw_pol_client_choice_4 „http.req.url.path.endswith(\“vpns/choices.html\“)“ rw_act_client_choice_4

Ausblenden des Dateishare Tabs und dessen rechten Frame und der Application Frame links

Aufbau der Action

add rewrite action rw_act_hide_fstab insert_after „http.RES.BODY(0).SET_TEXT_MODE(ignorecase)“ „\“#id_FileTransfer { display: none;}\““

add rewrite action rw_act_hide_fsframe insert_after „http.RES.BODY(0).SET_TEXT_MODE(ignorecase)“ „\“#ctl00_fileShares_mainDiv{ display: none;}\““

add rewrite action rw_act_hide_appframe insert_after „http.RES.BODY(0).SET_TEXT_MODE(ignorecase)“ „\“#ctl00_applicationsContainerCell{display: none;}\““

Aufbau der Policy

add rewrite policy rw_pol_hide_fstab „http.req.url.path.endswith(\“images/caxtonstyle.css\“)“ rw_act_hide_fstab

add rewrite policy rw_pol_hide_fsframe „http.req.url.path.endswith(\“images/caxtonstyle.css\“)“ rw_act_hide_fsframe

add rewrite policy rw_pol_hide_appframe „http.req.url.path.endswith(\“images/caxtonstyle.css\“)“ rw_act_hide_appframe

Hinweis: Nach dem Entfernen des rechten Frames hatte sich der Website-Frame nicht über die ganze breite gezogen, ggfs hierbei den Share-Frame drin lassen.

Ausblenden der Links zum Hinzufügen von eigenen Bookmarks (Websites und Share)

Aufbau der Action

add rewrite action rw_act_remove_bookmarks_web_1 delete_all „http.RES.BODY(120000).SET_TEXT_MODE(ignorecase)“ -pattern „<a id=\“id_Add\“ href=\“/vpns/empty.html\“ onclick=\“javascript:return ns_popupbookmarkoppage(\’newbm.html\‘);\“ target=\“_blank\“></a> |“

add rewrite action rw_act_remove_bookmarks_web_2 delete_all „http.RES.BODY(120000).SET_TEXT_MODE(ignorecase)“ -pattern „<a id=\“id_Remove\“ href=\“/vpns/empty.html\“ target=\“_blank\“ onclick=\“javascript:return ns_popupbookmarkoppage(\’rmbm.html\‘);\“></a>“

add rewrite action rw_act_remove_bookmarks_web_3 delete_all „http.RES.BODY(120000).SET_TEXT_MODE(ignorecase)“ -pattern „<B> <span id=id_PersonalWebSites></span> </B>“

add rewrite action rw_act_remove_bookmarks_web_4 delete_all „http.RES.BODY(120000).SET_TEXT_MODE(ignorecase)“ -pattern „<div class=\“NUI_Icon\“><span id=\“none\“></span></div>“

add rewrite action rw_act_remove_bookmarks_fs_2 delete_all „http.RES.BODY(120000).SET_TEXT_MODE(ignorecase)“ -pattern „<a id=\“id_Remove\“ href=\“/vpns/empty.html\“ target=\“_blank\“ onclick=\“javascript:return ns_popupbookmarkoppage(\’rmft.html\‘);\“></a>“

add rewrite action rw_act_remove_bookmarks_fs_3 delete_all „http.RES.BODY(120000).SET_TEXT_MODE(ignorecase)“ -pattern „<B> <span id=id_PersonalFileShares></span> </B>“

add rewrite action rw_act_remove_bookmarks_fs_4 delete_all „http.RES.BODY(120000).SET_TEXT_MODE(ignorecase)“ -pattern „<div class=\“NUI_Icon\“><span id=\“none\“></span></div>“

add rewrite action rw_act_remove_bookmarks_fs_1 delete_all „http.RES.BODY(120000).SET_TEXT_MODE(ignorecase)“ -pattern „<a id=\“id_Add\“ href=\“/vpns/empty.html\“ onclick=\“javascript:return ns_popupbookmarkoppage(\’newbm.html\‘);\“ target=\“_blank\“></a> |“

Aufbau der Policy

add rewrite policy rw_pol_remove_bookmarks_web_1 „http.req.url.path.endswith(\“portal/bookmark.html\“)“ rw_act_remove_bookmarks_web_1

add rewrite policy rw_pol_remove_bookmarks_web_2 „http.req.url.path.endswith(\“portal/bookmark.html\“)“ rw_act_remove_bookmarks_web_2

add rewrite policy rw_pol_remove_bookmarks_web_3 „http.req.url.path.endswith(\“portal/bookmark.html\“)“ rw_act_remove_bookmarks_web_3

add rewrite policy rw_pol_remove_bookmarks_web_4 „http.req.url.path.endswith(\“portal/bookmark.html\“)“ rw_act_remove_bookmarks_web_4

add rewrite policy rw_pol_remove_bookmarks_fs_1 „http.req.url.path.endswith(\“portal/ftlist.html\“)“ rw_act_remove_bookmarks_fs_1

add rewrite policy rw_pol_remove_bookmarks_fs_2 „http.req.url.path.endswith(\“portal/ftlist.html\“)“ rw_act_remove_bookmarks_fs_2

add rewrite policy rw_pol_remove_bookmarks_fs_3 „http.req.url.path.endswith(\“portal/ftlist.html\“)“ rw_act_remove_bookmarks_fs_3

add rewrite policy rw_pol_remove_bookmarks_fs_4 „http.req.url.path.endswith(\“portal/ftlist.html\“)“ rw_act_remove_bookmarks_fs_4

Ersetzen des Textes der übrigen Möglichkeiten bei der Clientauswahl

Aufbau der Action

add rewrite action rw_act_client_choice_xenapp_desc replace_all „http.RES.BODY(120000).SET_TEXT_MODE(ignorecase)“ „\“\’Mit XenApp Anwendungen und dem Desktop verbinden.\’\““ -pattern „_(\’Connect with Citrix XenApp Plug-in for Hosted Apps.\‘)“

add rewrite action rw_act_client_choice_cvpn_desc replace_all „http.RES.BODY(120000).SET_TEXT_MODE(ignorecase)“ „\“\’Mit internen Webanwendungen und Outlook Web Access verbinden.\’\““ -pattern „_(\’Connect without the Access Gateway Plug-in.\‘)“

add rewrite action rw_act_client_choice_cvpn_title replace_all „http.RES.BODY(120000).SET_TEXT_MODE(ignorecase)“ „\“\’Interne Webanwendungen\’\““ -pattern „_(\’Clientless Access\‘)“

add rewrite action rw_act_client_choice_xenapp_title replace_all „http.RES.BODY(120000).SET_TEXT_MODE(ignorecase)“ „\“\’XenApp und Desktop\’\““ -pattern „_(\’Citrix XenApp\‘)“

Aufbau der Policy

add rewrite policy rw_pol_client_choice_xenapp_desc „http.req.url.path.endswith(\“vpns/choices.html\“)“ rw_act_client_choice_xenapp_desc

add rewrite policy rw_pol_client_choice_xenapp_title „http.req.url.path.endswith(\“vpns/choices.html\“)“ rw_act_client_choice_xenapp_title

add rewrite policy rw_pol_client_choice_cvpn_desc „http.req.url.path.endswith(\“vpns/choices.html\“)“ rw_act_client_choice_cvpn_desc

add rewrite policy rw_pol_client_choice_cvpn_title „http.req.url.path.endswith(\“vpns/choices.html\“)“ rw_act_client_choice_cvpn_title

Aktivieren des „Zurück zum Login“ Links nach der Abmeldung

Aufbau der Action

add rewrite action rw_act_return_logon_1 replace_all „http.RES.BODY(120000).SET_TEXT_MODE(ignorecase)“ „\“<BR><BR>\““ -pattern „<!– <BR><BR>“

add rewrite action rw_act_return_logon_2 replace_all „http.RES.BODY(120000).SET_TEXT_MODE(ignorecase)“ „\“</p>\““ -pattern „–> </p>“

add rewrite action rw_act_return_logon_3 replace_all „http.RES.BODY(120000).SET_TEXT_MODE(ignorecase)“ „\“Hier klicken um zurück zur Anmeldeseite zu gelangen.\““ -pattern „Click here to return to the logon screen.“

Aufbau der Policy

add rewrite policy rw_pol_return_logon_1 „http.req.url.path.endswith(\“vpn/logout.html\“)“ rw_act_return_logon_1

add rewrite policy rw_pol_return_logon_2 „http.req.url.path.endswith(\“vpn/logout.html\“)“ rw_act_return_logon_2

add rewrite policy rw_pol_return_logon_3 „http.req.url.path.endswith(\“vpn/logout.html\“)“ rw_act_return_logon_3

Die Einträge sind alle auf einem Netscaler 10.5 entstanden, sollten aber so oder ähnlich auf einem 10.0 / 10.1 Release anwendbar sein. Nach Updates ist es noch wichtig zu prüfen, ob noch alles so ist, wie es sein soll.

Mit diesen Anpassungen entfällt das händische Umschreiben der html-Dateien und es ist Reboot- sowie Upgrade-resistent.