partner specific dynamic attributes

For sp-initiated sso using middleware on the idp, what is the best way to get the current Partner that initiated the sso?

I am trying to provide a specific value for UserId as well as different attributes depending on which partner initiate the sso.

Currently, I have created a custom SamlClaimFactory, and I would like to return the partner dependent dynamic values for CreateSamlUserID and CreateSamlAttributes.

Using ISamlIdentityProvider.GetStatusAsync to return ISsoStatus and calling GetPartnersPendingResponse looks promising, however that returns an array of pending partnerNames, and if there are multiple, there is no way to tell which is the originator of the current request.

Any suggestions?

Currently we don’t have a mechanism for passing this information from the SAML middleware to the application via the ISamlClaimFactory.

You might be better calling the SAML API rather than using the SAML middleware.

ISamlIdentityProvider.ReceiveSsoAsync returns an IIdpSsoResult which includes the PartnerName.

If this isn’t suitable for you, please contact support@componentspace.com outlining your requirements to see if there’s new functionality we could add.

[quote]
ComponentSpace - 11/19/2022
Currently we don't have a mechanism for passing this information from the SAML middleware to the application via the ISamlClaimFactory.

You might be better calling the SAML API rather than using the SAML middleware.

ISamlIdentityProvider.ReceiveSsoAsync returns an IIdpSsoResult which includes the PartnerName.

If this isn't suitable for you, please contact support@componentspace.com outlining your requirements to see if there's new functionality we could add.

[/quote]

If I used the saml api and built a controller, using the ExampleIdentityProvider as an example, in SingleSignOnService I could get the partnerName from ReceiveSsoAsync and pass it to CompleteSsoAsync, I would be able to pass the partnerName as a querystring to RedirectToAction("SingleSignOnServiceCompletion") so it would be available there as well.

It would have been nice to use the middleware, but I guess its no big deal, I was just hoping there was a way.

Thanks.

It’s something we’ll look at adding in a future release. The SAML API provides a bit more control than the middleware.