Forum Discussion
Bypassing the Webtop to directly access a Portal Access resource via URI
I am having an issue with accessing a Portal Access resource using a URI. I have set this up for other SAML resources before and it works flawlessly, however, when attempting it with a Portal Access resource, it only works if i do not have an open session. If I close the window and attempt to go back in, I get a connection error and have to wait for my current session to time out (or manually kill it). I need to be able to access the Portal Access resource anytime, whether I have a current session or not.
Here is the iRule i am using:
when ACCESS_POLICY_COMPLETED {
if {[ACCESS::session data get "session.server.landinguri"] eq "/mydefineduri"}{
log local0. "Policy Completed"
switch -glob [ACCESS::session data get session.server.network.name] {
"myproductionAPMPolicy.com"
{
ACCESS::respond 302 Location "/f5-w-687474703a2f2f31302e312e332e36$$"
}
}
}
}
4 Replies
- Michael_Jenkins
Cirrostratus
Are you basically trying to always force a redirect when the host is myproductionAPMPolicy.com and uri is /mydefineduri?
One thing to note is that the ACCESS_POLICY_COMPLETED event is only executed at the end of the access policy, which happens once during a session. This would explain why you only see the redirect initially and not on any subsequent requests.
If you want to always check for that pre-defined uri (and/or host), you can also use the HTTP_REQUEST event. Something like this:
when HTTP_REQUEST { switch -glob [string tolower "[HTTP::host][HTTP::uri]"] { "myproductionapmpolicy.com/mydefineduri*" { HTTP::respond 302 Location "/f5-w-687474703a2f2f31302e312e332e36$$" You could use this instead too: HTTP::redirect "/f5-w-687474703a2f2f31302e312e332e36$$" If you have other iRules on this VIP the use HTTP::respond or HTTP::redirect, you may need a couple additional commands to mitigate a multiple redirects error. return } } }If you only want to perform the redirect after a session has been successfully completed, you might add an conditional before the switch to check for that. Something like this:
if {[ACCESS::policy result] -eq 'allow'} { Processing code here }Hope this helps.
One bug I have run into this solution is that if there not currently a session for the user, this rule will stop at the webtop. If there is a session (or once a session is created) it works every time.
- Michael_Jenkins
Cirrostratus
Yea, I've noticed that in the past. An encoded URL doesn't seem to work properly without an APM session. the way I get around that is by decoding the url (see Kevin's answer to this question for an example), saving it to a session variable and then redirecting the user after they log in (sounds a lot easier than it is :/)
 
- Antish_293579
Nimbostratus
Mike..i am trying to bypass webtop for a SAML Resource. You mentioned you have done that many times...Can you please help me for that?
Help guide the future of your DevCentral Community!
What tools do you use to collaborate? (1min - anonymous)Recent Discussions
Related Content
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com