Mapping an x509 cert to one of multiple possible accounts

Tony Plovich aplovich at anl.gov
Tue Nov 7 15:32:31 EST 2017


Hello,

I'm working on upgrading our Shibboleth installation to 3.x, and part of 
that is building a selection page where users can choose between the 
Password, SPNEGO, and X509 flows.  I'm doing this using custom events 
triggered from the login view and the MFA flow with some scripting.  
I've run into an issue in that our X509 certs can map to multiple 
accounts within our AD back-end, so I need a way to let the user choose 
one of their possible accounts.

In our current setup, the user supplies a username hint which gets anded 
with their cert's subject.  The anding takes place during attribute 
resolution, however, in moving to 3.x, I'd like to work this into the 
c14n process.

Right now I'm stuck on how to retrieve the hint form parameter from 
login.vm.  The Password flow config page talks about the 
"shibboleth.authn.Password.ExtendedFlowParameters" bean that's meant for 
just this purpose, but I haven't had any luck getting back the value I 
input.  The AuthenticationContext.getAuthenticationFlowState() method 
referenced in the docs doesn't exist when I try calling it from a test 
script within the MFA flow.

Once I know where the hint is stored, I'm thinking I could create a 
scripted attribute that pulls it out of the ResolutionContext object and 
passes it to the data connector used by the c14n attribute-sourced 
flow.  Ultimately, that DC needs to run a query with a filter like:

(&(sAMAcountName=$username_hint)(altSecurityIdentity=$X509_subject))

Any ideas on how this could be accomplished would be greatly appreciated.

Thanks,

-- 
Tony Plovich (aplovich at anl.gov)
Business Information Systems (BIS)
Argonne National Laboratory



More information about the users mailing list