/Cas20WithoutProxyingValidationSpecification/ class that checks if the
chained authentications has just one element [3] which is false (2
elements are returned : one as the authentication and one more from the
/supplementalAuthentications/).
That's why it fails.
I don't think that it's the expected behaviour.
Agreed, though I can't say at the moment what the expected behavior
should be. My gut reaction is that I missed some components in my
analysis of some of the new MFA capabilities;
Cas20WithoutProxyingValidationSpecification is likely one of them.
Although I reviewed this source code (and especially the
/supplementalAuthentications/ property), I'm not sure to understand why
we need it eventually, as we have the same authentication in the
authentication and in the supplemental authentications.
MFA complicates all this. The driving force for
supplementalAuthentications is that 3.5.x only records the _first_
authentication, even if a renew has subsequently occurred. The renewed
authentication is simply discarded which is not what we want. Here's the
problem case with that behavior:
1. User attempts to access service A with no existing CAS session.
2. User authenticates to CAS with username/password and gains access to
service A.
3. User attempts to access service B, which imposes requirement to use a
particular high-security credential other than username/password.
4. User is redirected to CAS and reauthenticates with high-security
crednetial.
5. The original authentication is used for preparing the service ticket
validation response, and any LOA or other attribute that indentifies the
credential used would reflect username/password.
6. Access to service B is denied even though user authenticated with
requisite credential.
The supplementalAuthentications property was created to store all the
authentications that occur during an SSO session in order to support
policy-based approaches to retrieving a particular authentication; for
example "first one," "most recent," or something else. Storing all
authentications allows us to implement the correct behavior for the case
above.
Based on my analysis we cannot use chainedAuthentications for that
purpose since it's related to proxy chains and we want to keep the two
orthogonal.
I plan to begin integrating the current 4.0 snapshot into our overlay
some time this month, at which time some of these issues will become
clearer to me. If you or anyone else has further insight before then,
I'd be happy to discuss.
M
--
You are currently subscribed to [email protected] as:
[email protected]
To unsubscribe, change settings or access archives, see
http://www.ja-sig.org/wiki/display/JSG/cas-dev