Mac OS X 10.3 deployments of the Shibboleth SP must be built from source, but binaries are available for 10.4's default distribution. Mac OS X 10.3 and 10.4 both come pre-packaged with various versions of Apache 1.3.x. The default Apache and OpenSSL bundled with Mac OS X is capable of running Shibboleth, as is an OS X installation of Apache 2.0.x.
1. Prepare the Environment:
- Add
/opt/shibboleth-sp/lib
to the environment variableDYLD_LIBRARY_PATH
.export DYLD_LIBRARY_PATH="/opt/shibboleth-sp/lib:$DYLD_LIBRARY_PATH"
- For Mac OS X 10.4, the Apache processes require that the
DYLD_INSERT_LIBRARIES
environment variable point to/opt/shibboleth-sp/lib/libshib-target.dylib:/opt/shibboleth-sp/lib/libshib.dylib
(substituting the actual path of these libraries, if not in the location shown). The simplest thing to do is place a command to set and export this variable in/usr/sbin/apachectl
, such as:export DYLD_INSERT_LIBRARIES=/opt/shibboleth-sp/lib/libshib-target.dylib:/opt/shibboleth-sp/lib/libshib.dylib
- If Apache 2.0.x will be using PHP, read this section. Portions of the
libphp4
Apache module are written in C++, as is the Shibboleth SP. There is a known conflict on Unix-based platforms between the PHP extensionslibpspell.so
andlibsablot.so
which will manifest itself as segmentation faults when starting Apache. If a site wants to uselibphp4.so
and Shibboleth at the same time, then one of the following may be done:- Remove the options
--with-pspell
and--with-xslt-sablot
from PHP's configuration; - Rebuild these two modules using the same version of GCC that was used to compile Shibboleth.
- Remove the options
2. Install Shibboleth:
It is recommended that the Shibboleth binary be installed from the supplied tarball on the Internet2 site when possible by untarring it into the root directory.
tar -xvzf /path/to/shibboleth-sp-1.3-macosx-10.4.tar.gz
If you will be building the module yourself, follow the build instructions, which include a large number of additional prerequisite packages.
3. Configurate Shibboleth:
Add the newly compiled or installed modules to Apache next.
- Edit
httpd.conf
:- Shibboleth includes configuration directives in the files
/opt/shibboleth-sp/etc/shibboleth/apache.config
,/opt/shibboleth-sp/etc/shibboleth/apache2.config
, and/opt/shibboleth-sp/etc/shibboleth/apache22.config
which must beIncluded
in thehttpd.conf
file used locally. Be wary of placing the Include directive in the wrongVirtualHost
. - The
UseCanonicalName
directive should be set toOn
or resource mapping errors will result. - Ensure that the
ServerName
directive is properly set, and that Apache is being started with SSL enabled.
- Shibboleth includes configuration directives in the files
/opt/shibboleth-sp/sbin/shibd
must be independently started and run in order to handle access requests. In most cases, the build process ensures thatshibd
can locate the configuration file and schemas, but theSHIBCONFIG
andSHIBSCHEMAS
environment variables may be used as well. Command line options can also be used to specify them.- Remember to set DYLD_INSERT_LIBRARIES to /opt/shibboleth-sp/lib/libshib-target.dylib:/opt/shibboleth-sp/lib/libshib.dylib and DYLD_LIBRARY_PATH to /opt/shibboleth-sp/lib at runtime.
- By default, the Shibboleth module is configured to log information on behalf of Apache to
/opt/shibboleth-sp/var/log/httpd/native.log
, though this can be changed by modifying the.logger
files pointed to by the configuration. For this log to be created, Apache must have permission to write to this file, which may require that the file be manually created and permissions assigned to whatever user Apache is configured to run under. If the file does not appear when Apache runs with the modules loaded, check for permission problems or change the location used. shibd
creates its own separate logs at/opt/shibboleth-sp/var/log/shibboleth/shibd.log
and must have appropriate write permissions itself as well.
At this point, you should have a fully functional SP, but before it can be tested, you'll need to configure it to interoperate with an !IdP. Many federations will provide these for their community, and TestShib is available for anyone to test with.