we have a customer who is using the relay state to pass the target location where they want to land on the target application but the URL which i see on our fed logs shows the URL is incomplete and they end up on a different page
before posting to our ACS location it shows entire URL on SAML tracer
but the parameter which we see in our logs is as below
RelayState: https://ondemand.ca.com/fedsso?targetUrl=https://cppm9092.ondemand.ca.com/niku/app?action=itl.riskObjectAny suggestions on this
The truncation might due to the ampersand within the RelayState URL. URL encode the RelayState value should resolves the issue, example:
i have used the relay state url encoded but the customer (IDP) system decodes the URL , Do we have any way we can restrict thiis decoding . attached file which we can use samltracer(firefox addon) to see the flow
Maybe double-encode the RelayState URL?
Double encoded the Relay State value but the issue is not resolved . Do we have any way to enforce not to decode this on IDP side
If IdP is Siteminder, there's no options to prohibit the encoding.
The equal sign after RelayState does not need to be encoded. The RelayState URL value above is triple-encoded?
What's the RelayState value returned after you POST the double-encoded RelayState URL value to IdP?
I would agree URL encode the RelayState value should resolves the issue. It is documented in TEC529287.
Anil, you should double check your encoding as mentioned by others. I also found an ACO parameter which may help, but it was designed for windows agent, you may try on any agent though.
How to Allow the NTC to Encode URLs During Redirects to Protected Resources:
Specifies how the Windows credential collector (NTC) processes the TARGET URL during authentication when the characters of the TARGET URL use HTTP encoding. When the value of this parameter is no, any characters in the URL are decoded during authentication. The decoded characters are used in the redirect to the TARGET resource. When the value of this parameter is yes, characters in the TARGET URL are not decoded during authentication. Any characters using HTTP encoding remain encoded before and after authentication.
Please URL-encode the RelayState value.
I hope this would help.
Did you try setting SecureURLs parameter to YES ?