Apache httpd ja mod_shibilla suojaus
Apachen konfiguroinnista
Lisätietoja: https://wiki.shibboleth.net/confluence/display/SP3/Apache
Apache tarjoaa oletuksena Shibboleth-parametrit tarjolle ympäristömuuttujissa. Saatavilla on edelleen myös ShibUseHeaders -parametri, jolla ne välitetään Headereina, mutta tietoturvasyistä tätä ei tulisi käyttää. Yllä mainitulta sivulta löytyy lisää tietoja aiheesta.
SSL:ää käytettäessä (=aina) tulee lokaatioon lisätä lisäksi "
" määre, jotta ympäristömuuttujat välittyvät palvelulle.ProxyPass
Jos Apache toimii vain edustapalvelimella ja proxyttaa ProxyPassilla tiedot esim. nodejs:lle, voidaan attribuutit välittää vain Headerissa. Tällöinkään ei tulisi käyttää ShibUseHeadersia vaan määrittää yksitellen välitettävät parametrit.
# Poistetaan mahdolliset selaimen välittämät headerit ym. RequestHeader unset <attribute> # Kirjataan uusi headeri ympäristömuuttujasta, jos ympäristömuuttuja on olemassa RequestHeader set <attribute> %{<attribute>}e env=<attribute>
Pääsynrajoituksen esimerkkejä
Apachen htaccess-sääntöjä voi käyttää rajaamaan pääsyä. Tarkempia ohjeita löytyy Shibboleth SP:n ohjeita.
https://wiki.shibboleth.net/confluence/display/SP3/htaccess
Sijainti vaatii kirjautuneen käyttäjän
<Location /secure> AuthType shibboleth ShibRequestSetting requireSession 1 Require valid-user </Location>
Sijainti ei vaadi kirjautumista, mutta shibbolethin attribuutit ovat tarjolla
<Location /public> AuthType shibboleth ShibRequestSetting requireSession false Require shibboleth </Location>
Poista kirjautuminen esim. APIsta
Vaikka sivusto vaatisi Shibbolethin, ei taustalla tehtyjä API-kutsuja kannata suojata sillä vaan käyttää muita tapoja tunnistukseen.
<Location /api> Order Allow,Deny Allow from all Satisfy any </Location>
Ylläpitosivu, jossa vaaditaan käyttäjän lisäksi tietty osoite
<Location /admin> AuthType shibboleth ShibRequest Setting requireSession 1 Require valid-user Order Allow,Deny Allow from admin.helsinki.fi Satisfy all </Location>
Sallitaan työntekijöille
Olettaa että eduPersonAffiliation-attribuutti luovutetaan palvelulle ja se on määritetty affiliation-id:lle attribute mapissa.
<Location /admin> AuthType shibboleth ShibRequestSetting requireSession 1 Require shib-attr affiliation employee </Location>