Loading...
 
Shibboleth AAI

Links

Switch AAI
Switch AAI Resource Administration

Deployment

Shibboleth install

  • use the manual on the switch aai site
    # curl -k -O http://pkg.switch.ch/switchaai/SWITCHaai-swdistrib.asc
    # apt-key add SWITCHaai-swdistrib.asc
    # echo "deb http://pkg.switch.ch/switchaai/debian squeeze main" > /etc/apt/sources.list.d/switchaai.list
    # apt-get update
    # apt-get install shibboleth
  • next put the config files in "/etc/shibboleth" according to the SwitchAAI manual: SWITCH Shibboleth Service Provider (SP) 2.5 Configuration Guide
    • attribute-map.xml, attribute-policy.xml, shibboleth2.xml, SWITCHaaiRootCA.crt.pem, sp-cert.pem, sp-key.pem
  • this includes a registration with your SWITCHaai Federation Partner (e.g. UZH)

Secure B-Fabric

  • see NativeSPApacheConfig
  • make sure shibboleth knows about the reverse proxy
    <Location />
        ShibRequestSetting REMOTE_ADDR X-Forwarded-For
    </Location>
  • redirect "ShibbolethServelet" B-Fabric after shibboleth authentication
    <Location /ShibbolethServlet>
        AuthType shibboleth
        ShibRequireSession On
        ShibUseHeaders On
        require valid-user
        #require homeOrgType university
        RedirectMatch  .*      http://fgcz-bfabric.uzh.ch/bfabric/common/shibboleth-login.html
    </Location>
  • Apache will redirect to the B-Fabric Application Server and send the shibboleth headers to B-Fabric
    <Location /bfabric>
            Order allow,deny
            allow from all
            AuthType shibboleth
            ShibUseHeaders On
            require shibboleth
            SetEnv proxy-nokeepalive 1
    </Location>
    ProxyStatus On
    ProxyPreserveHost On
    ProxyPass /bfabric http://localhost:8080/bfabric
    ProxyPassReverse /bfabric http://localhost:8080/bfabric
  • redirect requests to "/shibboleth"
    Redirect seeother /shibboleth http://fgcz-bfabric.uzh.ch/Shibboleth.sso/Metadata

Reverse Proxy in front of B-Fabric

  • SwitchAAI needs to connect via HTTPS to the "entityID" and all registered "service locations".
  • Pound needs to accept https connections and return the certificate depending on the requested host (needs pound version 2.6 (!).
    ListenHTTPS
            Address 0.0.0.0
            Port 443          
    
            Cert "/etc/pound/cert/bfabric.pem"  
            RewriteLocation 2
    End
  • send data to shibboleth to the B-Fabric host
    Service
        URL "^/(ShibbolethServlet|shibboleth|favicon.*|Shibboleth.sso/.*|secure.*)"
        HeadRequire "Host:.*fgcz-bfabric.*"
        Backend
            Address 130.60.81.30
            Port 443
            HTTPS
        End
        Session
            Type IP
            TTL 3600
        End
    End
  • all requests must be redirected to the apache on the bfabric host
    Service
        URL "/bfabric/.*"
        HeadRequire "Host:.*fgcz-bfabric.*"
        Backend
            Address 130.60.81.30
            Port 80
            TimeOut 3600
        End
        Session
            Type IP
            TTL 3600
        End
    End

Shibboleth Troubleshooting

Documentation of errors and problems, hopefully with a solution.

shibsp::ListenerException

Solution: the shibboleth daemon is not running. Get root access on the B-Fabric host and start the daemon.
$ sudo service shibd start





Created by schmidt. Last Modification: Friday February 2, 2024 13:04:45 CET by tuerker.