Delegation flow: authn and c14n
Brent Putman
putmanb at georgetown.edu
Thu Sep 24 21:23:04 EDT 2015
On 9/2/15 7:26 PM, Cantor, Scott wrote:
>> The other direction I had in mind for this was to use the transition override stuff we had been discussing to short-circuit some of what's in sso-abstract-flow.xml. Basically have DoProfileWork transition to a profile-specific state chain that just does hardwired
>> authn/c14n (no selection, etc), and then when it completes, resume the parent flow with ResolveAttributes. Essentially bypass all the parent authn stuff.
> Sure.
>
I have tried this alternate approach out and honestly, I think I prefer
this. The Liberty delegation flow doesn't really need to do
"authentication" as we define it normally for user-facing stuff. Doing
it this way replaces all the complex parent flow stuff with 2 actions
and a call to the SAML c14n subflow. I think I'm going to provisionally
check this in, and if this turns out to be a bad idea, we can revisit.
Also like this b/c it avoids all the issues I already noted with the
deployer having to (at least currently) add stuff to user-space config
to make authn work with the authn subsystem. All the work is internal
to the flow, so user does nothing.
So far so good. That then leads to: This approach actually works fine
up until you get to the (big, lot of actions) BuildResponse action
state. It blows up on AddAuthnStatementToAssertion b/c there is in fact
no AuthenticationResult. At least at a technical level, I think that's
actually OK, because next up on the TODO list was dealing with the
AuthenticationStatement that gets populated. In the Liberty flow you
don't generate or build it: it is cloned as-is from the inbound
Assertion token processing. So actually need special processing here
anyway.
Any problem with this proposed solution: Add an activation condition to
AddAuthnStatementToAssertion which says "only run if the profile ID IS
NOT the Liberty SSOS one". And then add a new Action to BuildResponse
which says "only run if the profile IS the Liberty SSOS one". Is there
a better way? I briefly thought of adding the special handling right to
AddAuthnStatementToAssertion, but seems simpler to just keep them
separate.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://shibboleth.net/pipermail/dev/attachments/20150924/2a371e2e/attachment.html>
More information about the dev
mailing list