MFA authn flow - matching against multiple contexts?
Liam Hoekenga
liamr at umich.edu
Tue Dec 5 18:04:07 EST 2017
>
> Are you just trying to trigger a flow if one of the contexts is present?
>
Yes.
IOW, you do Password, which should only get you Password or PPT, depending
> on your configuration.
>
In our pre-MFA flow configuration, we had an authentication flow that
invoked Duo (via external auth) if any of these contexts was requested:
urn:oasis:names:tc:SAML:2.0:ac:classes:TimeSyncToken
http://id.incommon.org/assurance/mfa
https://refeds.org/profile/mfa
Is your required logic amenable to this:
>
> mfaCtx = authCtx.getSubcontext("net.shibboleth.idp.authn.context.Mult
> iFactorAuthenticationContext");
> if (mfaCtx.isAcceptable()) { return null; } // current principals suffice
> else { return nextFlow; } // run second factor
>
I don't yet need to trigger MFA based on a directory attribute, but will
after we migrate from our legacy SSO to Shib as the primary authenticator.
What I'm starting with is a combination of Jim Fox's suggestion in
http://shibboleth.net/pipermail/users/2016-December/033096.html...
authCtx =
input.getSubcontext("net.shibboleth.idp.authn.context.AuthenticationContext");
rpCtx =
authCtx.getSubcontext("net.shibboleth.idp.authn.context.RequestedPrincipalContext");
if (rpCtx != null) {
rps = rpCtx.getRequestedPrincipals();
tkp = new
AuthnContextClassRefPrincipal("urn:oasis:names:tc:SAML:2.0:ac:classes:TimeSyncToken");
if (rpCtx.getRequestedPrincipals().contains(tkp)) {
logger.debug("RP requested token login");
}
}
and the wiki example (https://wiki.shibboleth.net/c
onfluence/display/IDP30/MultiFactorAuthnConfiguration#MultiF
actorAuthnConfiguration-ProgrammaticallySelectingFlows).
How does isAcceptable() decide isAcceptable? Is it the weight map in
general-authn.xml?
Liam
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://shibboleth.net/pipermail/users/attachments/20171205/eae93eb6/attachment-0001.html>
More information about the users
mailing list