Shibboleth IdP v3 beta 1 External Authentication State

Cantor, Scott cantor.2 at osu.edu
Wed Dec 17 21:23:22 EST 2014


On 12/18/14, 12:46 AM, "Gary Gwin" <ggwin at cafesoft.com> wrote:



>I'm developing an External Authentication module for third-party SSO. 
>When I need to redirect to the external third-party SSO login page, if I 
>preserve state by adding a "conversation" query parameter to the 
>redirect (to redirect back when login is finished), the module works as 
>desired. Here's pseudo code:
>
>if (authnRequired){
>    final String conv = request.getParameter("conversation");
> 
>response.sendRedirect("https://idp.domain.com/login.jsp&url=https://idp.do
>main.com/idp/Authn/External?conversation=" 
>+ conv);
>    return;
>}
>
>Is this correct use of the API or is there a better way to handle state?

Well, you MUST be able to pass back in the conversation key when you 
invoke the finalize call inside your module, but it's entirely up to you 
how you want to achieve that.

As with any external module, you're taking on a huge security 
responsibility there and you obviously have total ownership of the 
security implications of redirecting to some other system and getting 
control back. That has to be another SSO protocol effectively.

The conversation key itself is really coming from SWF, and it isn't 
strictly speaking something you can just grab and misuse since it's an 
index into container session state. But in general, it would probably be 
better to keep it local and maybe issue a separate state token to use in 
your side of things to get back to it at the end.

-- Scott



More information about the users mailing list