Semantics of ForceAuthn with two-factor authentication

Christopher Bongaarts cab at umn.edu
Mon Jul 21 11:31:19 EDT 2014


SAML 2.0 defines ForceAuthn thusly:

> If "true", the identity provider MUST authenticate the presenter 
> directly rather than
> rely on a previous security context.

Our Duo implementation currently uses a previous security context 
(cookie) to determine how to proceed.  The logic looks like this 
(simplified):

If the SP wants two-factor, then
   if the user is already authed with two-factor
     let them in (SSO)
   else if the user is already authed with their password (first factor)
     prompt them for the second factor
   else
     prompt them for the first factor
else
   prompt them for the first factor

Now, the question that has come up is:  if an  SP wants two-factor, and 
also requests ForceAuthn (the particular use case is enforcing an 
inactivity timeout at the app), should we force re-authentication of 
*both* factors, or is there a case that only the second factor could be 
reauthenticated (assuming that the first factor auth is still valid from 
the IdP point of view)?

My most literal reading of the spec is that both must be reauthed (since 
accepting the previous first-factor auth would be relying on a previous 
security context).  Scalability to additional factors would also tend to 
favor this reading (if I ask for seven-factor auth, how do i decided if 
it's acceptable to re-use factors 1-4 but not 5 and 6?).

Any reasons besides "user convenience" to support a looser reading?

-- 
%%  Christopher A. Bongaarts   %%  cab at umn.edu          %%
%%  OIT - Identity Management  %%  http://umn.edu/~cab  %%
%%  University of Minnesota    %%  +1 (612) 625-1809    %%



More information about the users mailing list