Citrix Storefront with Chromebook Receiver App
Hey, everyone. I'm slamming my head against a wall on this one. I have Citrix Storefront deployed through the iApp f5.citrix_vdi.v2.4.6. It's been a nightmare getting it to work with my environment, but I have it mostly working. Everything works flawlessly through the Citrix Receiver app and through a browser for Windows and Mac machines. For Chromebooks it only works through a browser. I've isolated this down to the iRule that is created in the iApp, which I will post below.
The entire iRule is dependent upon discovering the client type that starts with "citrix," but for some unknown, ridiculous reason the Chromebook Citrix Workspace application comes in with a client type of "none." I've tried modifying the rule to recognize "none" and even just a blank string of "" but it doesn't seem to work. The iRule is responsible for the storename URI redirect or placement and it also keeps track of the session to avoid random logouts. The only reason I know that last part is if I remove this rule and add a rule that just redirects all requests to the URI of /Citrix/MYSTORENAME I am able to login on the Chromebook app but it times out after 20 minutes and kicks me off even if I'm actively doing something in the session. Any thoughts on how I can get this thing to recognize the ChromeOS Citrix app?
when CLIENT_ACCEPTED {
set citrix_logout 0
}
when ACCESS_ACL_ALLOWED {
set type [ACCESS::session data get session.client.type]
if { !($type starts_with "citrix") } {
set storeWebName "/Citrix/MYSTORENAME/"
set http_uri [HTTP::uri]
if { $http_uri == "/cgi/logout" } {
if { "ACCESS::session remove" != "" } {
ACCESS::respond 302 Location /vdesk/hangup.php3
} else {
ACCESS::respond 200 content "Logoff is successful.\r\n" Connection close
}
}
if { $http_uri == "/" || ($citrix_logout eq 0 && $http_uri ends_with "login.aspx") } {
log local0. "For [HTTP::uri] Redirecting to $storeWebName"
ACCESS::respond 302 Location "https://[HTTP::host]$storeWebName"
} elseif { $http_uri contains "Logoff" } {
set citrix_logout 1
} elseif { $citrix_logout eq 1 && $http_uri ends_with "login.aspx" } {
set citrix_logout 0
ACCESS::respond 200 content "Logged out\r\n" Connection close
ACCESS::session remove
}
}
}