destroying user IdP session as part of profile intercept flow

Scott Koranda skoranda at gmail.com
Thu Feb 4 12:32:57 EST 2016


> > Preventing SSO in the future via that result is precisely what
> > I want to do for this use case. Thanks.
> 
> Ok. Is that really the goal, or is this more of a
> programmatic "disable SSO" case, like with a shared machine
> or something?

It really is the goal.

I do not, however, see the strategy of removing an active authentication
result working.

The intercept flow includes this:

<action-state id="RemoveAuthenticationResult">
     <on-entry>
         <evaluate expression="opensamlProfileRequestContext.getSubcontext(T(net.shibboleth.idp.authn.context.SubjectContext))" result="flowScope.subjectContext" />
         <evaluate expression="subjectContext.getAuthenticationResults()" result="flowScope.authenticationResults"/>
         <evaluate expression="T(org.slf4j.LoggerFactory).getLogger('net.shibboleth.idp.authn').debug('BEFORE {}', authenticationResults.keySet())" />
         <evaluate expression="authenticationResults.remove('authn/Myflow')"/>
         <evaluate expression="T(org.slf4j.LoggerFactory).getLogger('net.shibboleth.idp.authn').debug('AFTER {}', authenticationResults.keySet())" />
     </on-entry>

     <evaluate expression="'proceed'"/>
     <transition on="proceed" to="MyEndState"/>
</action-state>

In the log I see that the active authentication results BEFORE are

[authn/Password, authn/Myflow]

and AFTER

[authn/Password]

as I expect.

But when I go back to the SP and SSO is attempted I also see in the log

DEBUG [net.shibboleth.idp.authn.impl.SelectAuthenticationFlow:350] - Profile Action SelectAuthenticationFlow: Reusing active result authn/Myflow

I expected that since I removed the authentication result with flow ID 'authn/Myflow'
from the active authentication results for the subject then it could not possibly
be reused.

What am I missing?

Thanks,

Scott K




More information about the users mailing list