<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <br>
    <br>
    <div class="moz-cite-prefix">On 9/2/15 7:26 PM, Cantor, Scott wrote:<br>
    </div>
    <blockquote cite="mid:723EBABE-4008-4BC1-9CE3-7524D8A25405@osu.edu"
      type="cite">
      <blockquote type="cite">
        <pre wrap="">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.
</pre>
      </blockquote>
      <pre wrap="">
Sure.

</pre>
    </blockquote>
    <br>
    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.<br>
    <br>
    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.<br>
    <br>
    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.  <br>
    <br>
    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. 
  </body>
</html>