Info |
---|
This guide describes how the Shibboleth v3 SP can be configured as a SAML Service Provider for eduTEAMS. Shibboleth (pronounced "Shibboleth") is the reference implementation of the OASIS SAML standard. Setting Installing and setting up the Shibboleth Service Provider in full is beyond the scope of this document. Many resources are available, such as the Shibboleth Wiki (https://wiki.shibboleth.net) and the installation instructions supplied and maintained by SWITCH (https://www.switch.ch/aai/guides/sp/installation/). It is assumed in the following that you are using Shibboleth's v3 SP alongside the Apache webserver. If you are using a different webserver, the configuration of the SP should remain the same, with any differences being a requirement of your chosen web server. |
1. Shibboleth configuration
2. Apache configuration
You will need to configure Apache to recognize Shibboleth as an authorization "gatekeeper".
You can do this at the VirtualHost level, for example. Here we show a very basic example. Other recipes are available. See for instance the Shibboleth Wiki at https://wiki.shibboleth.net/confluence/display/SP3/Apache
<VirtuaHost example.com:443>
...
...
<Location />
AuthType shibboleth
<IfVersion < 2.3>
ShibCompatWith24 On
</IfVersion>
ShibRequestSetting requireSession true
ShibUseEnvironment On
require shibboleth
</Location>...</VirtualHost>
Code Block | ||
---|---|---|
| ||
<VirtualHost example.com:443>
...
<Location />
AuthType shibboleth
<IfVersion < 2.3>
ShibCompatWith24 On
</IfVersion>
ShibRequestSetting requireSession false
ShibRequestSetting requireSession 1
ShibUseEnvironment On
</Location>
</VirtualHost> |
2. Apache configuration
2a. Entitlements (authorization)
An authenticated user will have a number of "entitlements" associated with their account.
These entitlements are presented to your SP in the form of the following:
Attribute FriendlyName="eduPersonEntitlement" Name="urn:oid:1.3.6.1.4.1.5923.1.1.1.7" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
- within the SAML assertion.
The apache webserver populates the server environment with the variable "entitlements" and populates it accordingly.
See the example to the right.
language | xml |
---|
Is presented to your Apache instance as:
[entitlement] => urn:geant:eduteams.org:service:eduteams-acc:group:eduTEAMS#acc.eduteams.org;urn:geant:eduteams.org:service:eduteams-acc:group:eduTEAMS:gitlab#acc.eduteams.org;gitlab:admin#acc.eduteams.org;urn:geant:eduteams.org:service:eduteams-acc:group:eduTEAMS:Developers#acc.eduteams.org; - that is, a colon (":") separated list.4. Conclusion
You should now have a working integration of Apache and Shibboleth v3 SP services on your machine.