Le 07/09/2012 11:17, Marco Panella a écrit :
On 09/06/2012 11:18 AM, Philippe MARASSE wrote:
Hello,

We're using CAS 3.5.0 with X509 + SPNEGO + Login/Password (LDAP/LPPE)
authentication schemes. Since SSL negotiation happens at transport
layer, it should be done before all other mechanisms. In my
login-webflow.xml, I've modified some transitions to wire startX509
instead of generateLoginTicket :

<!-- else modified for X509 -->
<decision-state id="gatewayRequestCheck">
<if test="requestParameters.gateway != '' and requestParameters.gateway
!= null and flowScope.service != null"
then="gatewayServicesManagementCheck"
else="startX509" />
</decision-state>
...
<!-- then modified for X509 -->
<decision-state id="renewRequestCheck">
<if test="requestParameters.renew != '' and requestParameters.renew !=
null"
then="startX509"
else="generateServiceTicket" />
</decision-state>

And added the X509 authentication state, on authentication error, it
continues to generateLoginTicket :

<action-state id="startX509">
<evaluate expression="x509Check" />
<transition on="success" to="sendTicketGrantingTicket" />
<transition on="warn" to="warn" />
<transition on="error" to="generateLoginTicket" />
</action-state>

So it should be sufficient to change all generateLoginTicket to
startAuthenticate (renamed startX509 in our case because we also have
SPNEGO non interactive authentication).

Thank you very much.
I did that, and it works.


Using a second virtual host for x509 authentication on a second port is working.


Now, I'd like to ask if is there a way to use a <Location> directive; this will avoid problems with users behind a firewall that blocks outgoing traffic.


Something like this:
-----
<Virtualhost cas.unipr.it:443>
[snip]
<Location /x509>
      SSLOptions +StdEnvVars +ExportCertData
      SSLVerifyClient require
      SSLCACertificatePath /etc/pki/tls/CAs/
      ProxyPass ajp://cas2.unipr.it:8009/
</Location>
SSLCARevocationPath /etc/pki/tls/CRLs/

ProxyPass / ajp://cas2.unipr.it:8009/
</VirtualHost>
-----

I tried that configuration but I get this error:
2012-09-06 13:26:50,792 DEBUG [org.jasig.cas.adaptors.x509.web.flow.X509CertificateCredentialsNonInteractiveAction] - <Certificates not found in request.>


I suspect that's impossible for the fact that Location is a HTTP feature, but I'd like to hear your (or other's) opinion.
Not impossible indeed. Unfortunately, we use mod_jk instead with this configuration :

<IfModule mod_jk.c>
    JkOptions +ForwardKeySize +ForwardSSLCertChain
    JkMount /cas balancer
    JkMount /cas/* balancer
</IfModule>

I had to specify some options to get the SSL certificate (and full certification chain). By the way, it seems that on you SSL site, client certificate is required (/x509) and not. Consider using another SSL option :

SSLOptions +OptRenegotiate

in the base of your virtualhost.

Regards.


--
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-user

Reply via email to