Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • The Shibboleth setting "ShibUseHeaders" is no longer required to be set to "On", as DSpace will correctly utilize attributes instead of headers.
      Proper
      • When "ShibUseHeaders" is set to "Off" (which is recommended in the mod_shib documentation), proper configuration of Apache to pass attributes to Tomcat (via either mod_jk or mod_proxy) can be a bit tricky, SWITCH has some great documentation on exactly what you need to do. We will eventually paraphrase/summarize this documentation here, but for now, the SWITCH page will have to do.
    • When initially setting up Apache & mod_shib, https://www.testshib.org/ provides a great testing ground for your configurations. This site provides a sample/demo Shibboleth IdP (as well as a sample Shibboleth SP) which you can test against. It acts as a "sandbox" to get your configurations working properly, before you point DSpace at your production Shibboleth IdP.

    ...

    Code Block
    #### SAMPLE MOD_SHIB CONFIGURATION FOR APACHE2 (it may require local modifications based on your Apache setup) ####
    # While this sample VirtualHost is for HTTPS requests (recommended for Shibboleth, obviously), 
    # you may also need/want to create one for HTTP (*:80)
    <VirtualHost *:443>
       ...
       # PLEASE NOTE: We have omitted many Apache settings (ServerName, LogLevel, SSLCertificateFile, etc) 
       # which you may need/want to add to your VirtualHost
       
       # As long as Shibboleth module is installed, enable all Shibboleth/mod_shib related settings
       <IfModule mod_shib>
           # Shibboleth recommends turning on UseCanonicalName
           # See "Prepping Apache" in https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPApacheConfig
           UseCanonicalName On
    
           # Most DSpace instances will want to use Shibboleth "Lazy Session", which ensures that users 
           # can access DSpace without first authenticating via Shibboleth. 
           # This section turns on Shibboleth "Lazy Session". Also ensures that once they have authenticated
           # (by accessing /Shibboleth.sso/Login path), then their Shib session is kept alive
           <Location />
             AuthType shibboleth
             ShibRequireSession Off
             require shibboleth
             # If your "shibboleth2.xml" file specifies an <ApplicationOverride> setting for your 
             # DSpace Service Provider, then you may need to tell Apache which "id" to redirect Shib requests to. 
             # Just uncomment this and change the value "my-dspace-id" to the associated @id attribute value.
             #ShibRequestSetting applicationId my-dspace-id
           </Location>
    
           # If a user attempts to access the DSpace shibboleth login page, force them to authenticate via Shib
           <Location "/shibboleth-login">
             AuthType shibboleth
             ShibRequireSession On
             # DSpace requires using Shibboleth Headers. So this MUST be "On" Please note that setting ShibUseHeaders to "On" is a potential security risk. 
             # You may wish to set it to "Off". See the mod_shib docs for details about this setting:
             # https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPApacheConfig#NativeSPApacheConfig-AuthConfigOptions
             # Here's a good guide to configuring Apache + Tomcat when this setting is "Off": 
             # https://www.switch.ch/de/aai/support/serviceproviders/sp-access-rules.html#javaapplications 
             ShibUseHeaders On
             require valid-user
           </Location>
             
           # Ensure /Shibboleth.sso path (in Apache) can be accessed
           # By default it may be inaccessible if your Apache security is tight.
           <Location "/Shibboleth.sso">
             Order deny,allow
             Allow from all
             # Also ensure Shibboleth/mod_shib responds to this path
             SetHandler shib
           </Location>
     
           # Finally, you may need to ensure requests to /Shibboleth.sso are NOT redirected 
           # to Tomcat (as they will be handled by mod_shib instead).
           # NOTE: THIS SETTING IS LIKELY ONLY NEEDED IF YOU ARE USING PROXYPASS TO REDIRECT
           # ALL REQUESTS TO TOMCAT (e.g. ProxyPass / ajp://localhost:8080/)
           # ProxyPass /Shibboleth.sso !
       </IfModule>
     
       ...
     
    </VirtualHost>

    ...