nameID mixup in IDP session
Gruber Bernhard SAI sIT
Bernhard.Gruber at s-itsolutions.at
Fri May 31 10:09:44 EDT 2013
We have the requirement to provide different authentication methods on the IDP.
The authentication methods differ in the security level.
But if I have more than one authenticated user in one session, Shibboleth tends to confuse the user names.
Reproduce:
1) Send SAML AuthnRequest to IDP
2) On IDP login as user1 with low secure authentication method
3) Send SAML AuthnRequest with ForceAuthn=true to IDP
4) On IDP login as user2 with high secure authentication method
You can get user1 with high secure authentication method in der SAML Assertion.
The mixup is done in AuthenticationEngine.mergeSubjects() which puts together both principals in one subject
and AbstractSAML2ProfileHandler. populateUserInformation() which takes out the name of the first principal from the subject.
The subject stores the principals in a HashSet with undefined order by design.
By the way, the LoginContext contains the correct user information in its authenticationMethodInformation.
Is there a known secure way to use SSO and more than one authentication method?
More information about the users
mailing list