#request.SAML.baseUrl#metadata.cfm
login64 = binaryEncode(deflate(authnRequestXml),"base64");
loginUrlEnc = urlEncodeRfc2396(login64);
loginSigAlgUrl = urlEncodeRfc2396('http://www.w3.org/2001/04/xmldsig-more##rsa-sha256');
relayState = urlEncodeRfc2396(target_page);
if (len(target_page)) { //empty RelayState would not be accepted
relayStateX = "&RelayState=#urlEncodeRfc2396(target_page)#";
} else {
relayStateX = "";
}
loginRequest2Sign = "SAMLRequest=#loginUrlEnc##relayStateX#&SigAlg=#loginSigAlgUrl#"; //parameter order matters
signature = sign(loginRequest2Sign, privateKey, 'SHA256withRSA');
signature64 = binaryEncode(signature,"base64");
signatureForUrl = urlEncodeRfc2396(signature64);
loginRequest = "#loginRequest2Sign#&Signature=#signatureForUrl#";