> Marvin, can you please send me more information about your 2 factors auth
> implementation for CAS ?

Sorry you had to ask again.  I'll sketch out our implementation
briefly and you can ask for elaboration on any points you're
interested in.  It may be interesting to review the UI, since that was
a significant portion of the work, https://auth.vt.edu.

- Defined two authentication handlers for user credentials,
BindLdapAuthenticationHandler for user/password credentials and
X509CredentialsAuthenticationHandler for eToken credentials.

- Set up a special port on the servlet container, 9443 in our case,
that wants SSL client authentication.  The eToken login form posts to
that port in order to deliver the certificate on the token to the CAS
server.  The point about "want" is very important in our case since
"require" doesn't provide nearly as clean a user experience as
optional SSL client auth.  If you don't provide a certificate to the
server in the "require" case, you have browser-specific behavior which
is not very intuitive in some cases.

- Customized the CAS login webflow to do a number of things:
  1. Define two login forms, default user/pass and optional eToken,
     with limited support for switching between them.
  2. Display a friendly server-side error message on eToken/SSL
     client auth failure.  This is more work than it sounds.
  3. Redirect all requests on port 9443 back to the standard SSL
     port.

- Developed some CredentialsToPrincipalResolver components to inject a
special LOA (Level of Assurance) value based on the original
authentication credentials into the attribute payload delivered to
SAML clients.  We envision this will be used for demanding strong
authentication by CAS client applications that need it.  Unfortunately
there is no infrastructure in CAS for upgrading a credential; this is
clearly a usability shortcoming.

In order for the eToken to send the client cert to CAS, which is
really the heart of the 2-factor auth, the client computer must have
the Aladdin eToken runtime software installed and the user must
authenticate with the private key password.  The runtime has an option
to cache the password, which is enabled by default IIRC.  Putting that
configuration in the hands of the client is a liability in terms of
security policy.  In my opinion the requirement of client-side
software installation and configuration is the greatest liability of
our solution.  The eToken runtime has proven to be problematic on the
platforms I use daily (Ubuntu, OSX), but it is my understanding that
Windows support is satisfactory.

M

-- 
You are currently subscribed to cas-user@lists.jasig.org as: 
arch...@mail-archive.com
To unsubscribe, change settings or access archives, see 
http://www.ja-sig.org/wiki/display/JSG/cas-user

Reply via email to