Offer Kerberos authentication to supporting browsers
[invirt/packages/invirt-web.git] / files / etc / apache2 / sites-available / ssl.mako
index 7276a0b..dfd5af9 100644 (file)
@@ -4,10 +4,10 @@ hostname = cfg.web.hostname
 errmail  = cfg.web.errormail
 tracuri  = cfg.trac.uri
 %>
-<VirtualHost *:443>
-       ServerAdmin ${errmail}
-       ServerName ${hostname}:443
-       
+Listen 442
+Listen 446
+
+<%def name="invirt_webinterface()">
        DocumentRoot /var/www/sipb-xen-www
        <Directory /var/www/sipb-xen-www>
                Options Indexes FollowSymLinks MultiViews ExecCGI
@@ -16,10 +16,7 @@ tracuri  = cfg.trac.uri
                allow from all
        </Directory>
        <Location />
-               Require valid-user
-               AuthType SSLCert
-               AuthSSLCertVar SSL_CLIENT_S_DN_Email
-               AuthSSLCertStripSuffix "@MIT.EDU"
+${caller.body()}
        </Location>
 
        RewriteEngine On
@@ -54,7 +51,6 @@ tracuri  = cfg.trac.uri
        SSLCertificateKeyFile ssl/server.key
        
        SSLCACertificateFile ssl/mitCAclient.pem
-       SSLVerifyClient require
        SSLVerifyDepth 10
 
        SSLOptions +StdEnvVars
@@ -62,6 +58,32 @@ tracuri  = cfg.trac.uri
        SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
 
        Redirect /wiki ${tracuri}       
+</%def>
+<VirtualHost *:443>
+       ServerAdmin ${errmail}
+       ServerName ${hostname}:443
+       <%call expr="invirt_webinterface()">
+               Require valid-user
+               AuthType SSLCert
+               AuthSSLCertVar SSL_CLIENT_S_DN_Email
+               AuthSSLCertStripSuffix "@MIT.EDU"
+       </%call>
+       SSLVerifyClient require
+</VirtualHost>
+<VirtualHost *:442>
+       ServerAdmin ${errmail}
+       ServerName ${hostname}:442
+       <%call expr="invirt_webinterface()">
+               Require valid-user
+               AuthType Kerberos
+               KrbMethodNegotiate on
+               KrbMethodK5Passwd off
+               KrbAuthoritative off
+               KrbAuthRealms ${cfg.authn[0].realm}
+               Krb5Keytab /etc/invirt/keytab
+               KrbSaveCredentials off
+       </%call>
+       SSLVerifyClient optional
 </VirtualHost>
 
 <VirtualHost *:446>