What happens during authentication
The below sequence diagram illustrates the series of requests that occur during authentication.
Shibboleth relies on cookies, redirects and some javascript to make all of these requests appear seamless to the end user.
From the user's perspective authentication is a three step process in the default configuration.
In this example a browser is trying to access a directory protected by Shibboleth named "/secure".
The user "John Doe" will be redirected to the WAYF where he selects that he wants to use his kerberos credentials to authenticate or an MIT certificate.
Getting Started with Apache Configuration for Touchstone
Below are some simple apache configuration examples for multiple vhosts on the same host setup to
restrict content to MIT account holders.
More information about configuring Apache can be found in the following links.
https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPApacheConfig
https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPhtaccess
It is highly recommended to use SSL for the entire site you want to protect with Touchstone.
Apache Configuration Examples
Restrict content to MIT account holders
In this example all http requests will be redirected to https
<VirtualHost [ip]:80> RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} </VirtualHost> <VirtualHost [ip]:443> DocumentRoot /var/www/html/trantor ServerName trantor.mit.edu SSLEngine on SSLProtocol all -SSLv2 SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW SSLCertificateKeyFile /etc/pki/tls/private/localhost.key # self-signed certificate SSLCertificateFile /etc/pki/tls/certs/localhost.crt <Location /secure> AuthType shibboleth ShibRequestSetting requireSession 1 require user ~ @mit.edu$ Options ExecCGI </Location> </VirtualHost>
Add shibboleth authentication to a site with insecure content
<VirtualHost <ip>:80> DocumentRoot /var/www/html/helicon ServerName helicon.mit.edu </VirtualHost> <VirtualHost <ip>:443> # helicon.mit.edu Servername helicon.mit.edu DocumentRoot /var/www/html/helicon SSLEngine on SSLProtocol all -SSLv2 SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW SSLCertificateKeyFile /etc/pki/tls/private/helicon.key SSLCertificateFile /etc/pki/tls/certs/helicon.crt </VirtualHost> <Directory /path/to/secure> AuthType shibboleth ShibRequestSetting requireSession 1 require user ~ @mit.edu$ Options ExecCGI ShibRedirectToSSL 443 </Directory>