I am typing this up as a SailPoint customer who is an Administrator and Implementer for my company - not a PingFederate Admin - but I wanted to put an article online to help people work though some troubleshooting issues we ran into regarding Idp-Initiated and sp-initiated SSO. Up to this point, everything that I have found in the community has been fragmented and it took me reading between the lines to understand what I was missing in my configuration in SailPoint.
Issues we encountered:
SAML Based SSO Config Example Values
// Imports |
import sailpoint.object.Identity;
String logName = "example.SSO";
log(logName, "***Entering rule exampleSAML...", LOG_ERROR); | |||
// Get the nameId from the assertionAttributes
String nameId = (String)assertionAttributes.get("uniqueid");
log(logName, "UniqueId from SAML assertion is: " + nameId, LOG_ERROR);
Identity ident;
if(nameId != null) {
// Lookup the identity based on nameId
ident = context.getObjectByName(Identity.class, nameId);
log(logName, "Identity found: " + ident.getDisplayName() + ". Returning...", LOG_ERROR); |
}
else { | ||||
log(logName, "No name id, did not match identity.", LOG_ERROR); | ||||
} |
return ident;
I hope this helps with configuring SAML and PingFederation.
Is there a way to forward the user to an "Unauthorized User" page or some sort of thing like that if the SAML Correlation Rule returns a null identity? How do we handle a failed authentication differently than a successful authentication?
Thanks for the information. Did you have to encrypt or sign the assertion? If yes, then can you please share the steps.
This helped a lot, thank you for documenting your issues!