This guide describes the installation of a Shibboleth Service Provider (SP) 2.5 on the supported operating systems below. We did not test the SP on all OS versions, so please report any issue you encounter.
Select first the operating system that is used on the host where the Shibboleth Service Provider is installed:
Windows Server 2008 R2 with IIS, Windows Server 2012 with IIS
This guide covers only installation but not configuration of the Service Provider. The installation instructions are generic and not federation specific.
If the Service Provider is already installed, please continue to the federation-specific Service Provider 2.5 Configuration Guide.
2. Prerequisites
For the following steps it is assumed that the reader is sufficiently experienced to use the command line environment on the operating system of choice.
Please examine the list below and ensure that the system where the Service Provider is going to be installed meets the given requirements.
2.1. Recommendations
The following software is optional but recommended to be installed for installation and operation for the Service Provider.
NTP
Servers running Shibboleth must have the system time synchronized in order to avoid clock-skew errors. It is therefore recommended to install ntp or use another time synchronisation mechanism.
Sudo
We recommend installing sudo for commands that require root privileges.
As root user sudo can be installed with:
apt-get install sudo
yum install sudo
zypper install sudo
Curl
To download software and configuration files we recommend curl but of course you can also use wget or another tool. Just replace the curl commands in the following instructions with the tool you prefer using. Curl can be installed with:
sudo apt-get install curlsudo yum install curl
SSL enabled for Apache
It is strongly recommended to have the Apache SSL module enabled and configured to support HTTPS. By default the Shibboleth messages containing user attributes are encrypted. Therefore, they can also be sent via the insecure HTTP protocol. However, any session-based access to a web page via the insecure HTTP is prone to session hijacking attacks. This also includes the Shibboleth session. Relying on HTTPS mitigates this risk.
SSL enabled for IIS
The IIS website should have an appropriate x509 certificate installed and SSL enabled.
2.2. Requirements
The following software must be installed in order to operate the Shibboleth Service Provider.
Root access
For the following steps it must be possible to execute commands as user with root privileges, e.g. as root user or with the recommended sudo. Ensure that you have root privileges on the system.
Mac Ports
To install the Shibboleth Service Provider package on Mac OS X, the package management system Mac Ports must be installed. If not yet installed, please install Mac Ports on the system. Prerequisite for using Mac Ports is that the Apple Developer Tools (e.g. XCode) are installed on the system as Mac Ports must compile some software.
IIS Management Compatibility
IIS 6 Management Compatibility should be installed on IIS 7.x since the Shibboleth installer package uses those management interfaces. Without IIS 6 Management Compatibility additional manual configuration steps not covered in this document will be required. The IIS 6 Management Compatibility option can be installed from Administrative Tools > Server Manager > Web Server (IIS) > Role Services.
Remove manually compiled/installed Service Provider
Before installing the Shibboleth Service Provider 2.5 on the system with the OS packet management system, ensure that there is no manually compiled and installed version of Shibboleth anymore. Manually compiled and installed version of the Shibboleth Service Provider can conflict with the new Service Provider versions that are installed via the package management system.
Follow the Service Provider Cleanup Instructions below in order to remove manually compiled Service Provider versions.
2.3. Service Provider Cleanup Instructions
The cleanup instructions describe how to remove a manually compiled and installed Service Provider before installing a new version with the package management system. The instructions assume that the Service Provider 2.x was installed as follows:
The Shibboleth Service Provider and the required libraries were installed in /opt/shibboleth-sp*
There was a symlink /opt/shibboleth/shibboleth-sp to /opt/shibboleth-sp-2.x.y
The Apache Shibboleth module was deployed as follows:
If the current configuration of the old Service Provider was not heavily customized, it is recommended to delete it as well and use a clean configuration instead
sudo rm -rf /etc/shibboleth
Before continuing to the next section, please ensure that the requirements above are met on the system where the Shibboleth Service Provider will be installed.
3. Shibboleth Repository
The Shibboleth project operates its own repository that provides the official Shibboleth Service Provider binaries and its dependencies for RPM-based Linux distributions. This repository contains always up-to-date version of the Shibboleth Service Provider. Therefore, it is recommended to prefer this repository and its packages over packages that may be provided by the OS distribution.
The Shibboleth project only provides official binary packages for RPM-based Linux distributions. As a service to its community members, SWITCH operates a repository with packages for the current Debian release. To configure this repository as an additional source for APT, follow these steps:
The Shibboleth project only provides official binary packages for RPM-based Linux distributions. As a service to its community members, SWITCH operates a repository with packages for the current Ubuntu LTS release. To configure this repository as an additional source for APT, follow these steps:
The Shibboleth project maintains the official Shibboleth Service Provider Mac Port packages. Therefore, no specific repository has to be configured for Mac OS X provided Mac Ports is installed.
A special note applies to Red Hat 7 and probably all future versions: because of Red Hat's licensing restrictions,
it's now impossible for the build service to target Red Hat 7 directly.
However, CentOS is an identical system, and the packages for it work on the equivalent Red Hat versions, so Red Hat 7 deployments should rely on the CentOS 7 package repository.
sudo zypper ar -f http://download.opensuse.org/repositories/security:/shibboleth/SLE_10/security:shibboleth.repo
For SUSE Linux 11.x:
sudo zypper ar -f http://download.opensuse.org/repositories/security:/shibboleth/SLE_11/security:shibboleth.repo
For SUSE Linux 11.x SP 1:
sudo zypper ar -f http://download.opensuse.org/repositories/security:/shibboleth/SLE_11_SP1/security:shibboleth.repo
For SUSE Linux 11.x SP 2:
sudo zypper ar -f http://download.opensuse.org/repositories/security:/shibboleth/SLE_11_SP2/security:shibboleth.repo
For SUSE Linux 11.x SP 3:
sudo zypper ar -f http://download.opensuse.org/repositories/security:/shibboleth/SLE_11_SP3/security:shibboleth.repo
For SUSE Linux 12.x:
sudo zypper ar -f http://download.opensuse.org/repositories/security:/shibboleth/SLE_12/security:shibboleth.repo
You will be asked to confirm the new repository.
Refresh Repository
sudo apt-get update
sudo zypper ref -s
sudo port sync
4. Installation
Install the Service Provider by:
Shibboleth Service Provider Installation
sudo apt-get install shibboleth
For 32-bit OS:
sudo yum install shibboleth
For 64-bit OS:
sudo yum install shibboleth.x86_64
sudo port install curl +ssl
sudo port install shibboleth
If asked to confirm whether you really want to install Shibboleth and all dependencies, answer with 'Y' for yes.
If a previous version of the Service Provider from the official repository was installed on this system, this old version might be replaced by the newer version from the SWITCH repository. It is therefore ok to agree that old versions (like libapache2-mod-shib2 libshibsp4 opensaml2-schemas shibboleth-sp2-schemas) are removed.
After installation of the package, you need to start the shibd daemon:
sudo service shibd start
After installation of the package, you need to start and enable the shibd daemon:
sudo systemctl start shibd.service
sudo systemctl enable shibd.service
Shibboleth does not support the SP in conjunction with SELinux. To disable SELinux, configure SELINUX=disabled in /etc/selinux/config and reboot the system.
If there was an older version of a Service Provider already installed on the system, you might be asked whether to keep the existing configuration files or overwrite them with the package default files. The old configuration files should be kept. You can continue to use the old files in most cases. Generally, it is however recommended to perform a clean configuration as is described in the configuration guide mentioned below.
Execute the installer package. We recommend to perform the following actions during installation:
Confirm the dialog to run the software
Click "Next"
Accept the license agreement
The setup should look like on the screenshot below.
Install the Service Provider into the default location to C:\opt\shibboleth-sp
For the 64-bit installer package only: "Run as 32-Bit" should be unchecked unless Shibboleth is used with a 32-bit application pool
"Install ISAPI modules into IIS" should be checked
IIS Script Extension should be the default ".sso"
Click "Next", then "Install", then "Finish"
Click "Yes" to restart the system
Verify Shibboleth Service settings
In order to check whether the installation was successful, open Administrative Tools > Services. The Shibboleth service (Shibboleth 2 Daemon) should have Status = Started, Startup Type = Automatic, Logon As = Local System.
Verify IIS settings
Open Internet Information Server (IIS) Manager and verify the Shibboleth ISAPI filter is installed
In IIS 6: Right-click on Web Sites, open Properties, select the ISAPI Filters tab. You should see a green arrow in the Status column for Shibboleth.
Double-click on the Shibboleth filter entry and you should see Executable = C:\opt\shibboleth-sp\lib\shibboleth\isapi-shib.dll for a 32-bit install. If the status is unknown, use a web browser to open the URL of your web site. Often this will force the Shibboleth ISAPI filter to be activated.
In IIS 7: Click on the server name, open ISAPI Filters.
You should see Name = Shibboleth, Executable = C:\opt\shibboleth-sp\lib64\shibboleth\isapi-shib.dll for a 64-bit install.
Optional proxy settings
Shibboleth will automatically download metadata and CRL files.
If your network policy does not allow outgoing connections on port 80 by default, then it is recommended to configure an HTTP proxy for outgoing connections.
Add the following line in /etc/sysconfig/shibd/etc/default/shibd
export http_proxy=proxy.example.org:8080
Add the following lines in /Library/LaunchDaemons/org.macports.shibd.plist:
Open Control Panel > System > Advanced System Settings > Advanced > Environment Variables > System variables > New... and add the environment variable:
4.1. Result
The Service Provider should now be installed on the system. Of particular interests are the directories:
overall configuration is loadable, check console for non-fatal problems
If there are any ERROR log entries, it is strongly recommended to have a look at the problem.
Messages with log level WARN are generally not problematic but it is recommended to examine the causes of these warning messages.
Apache Configuration Check
Also test the Apache configuration with the command:
sudo apache2ctl configtest
or
sudo apachectl configtest
The output of this command should be:
Syntax OK
mod_shib Test
(Re-) Start the web server and then access the URL: https:///Shibboleth.sso/Session.
The web server (or Shibboleth module respectively) should return a page that says:
A valid session was not found.
This message shows that the Shibboleth module is loaded by the webserver and is communicating with the shibd process.
6. Service Provider Configuration
After the above tests were successful, continue to the Shibboleth configuration. Note that the configuration and migration guides are only for Service Providers that are configured for the SWITCHaai federation. In all other cases refer to the configuration guides of the Shibboleth Consortium.
To update an existing Shibboleth Service Provider configuration, continue with the Service Provider 2.5 Migration Guide for existing installations. This option is only recommended if you are experienced with Shibboleth and if your existing configuration was customized to use advanced Shibboleth features