Shibboleth + Drupal SSO

Az egyetem (és több hazai felsőoktatási intézmény) a Shibboleth authentikációs rendszerét használja egy központi autentikációs szolgáltatás megvalósítására. A Drupal is képes e rendszer alkalmazására (az NIIF által fejlesztett modul segítségével). A szolgáltatás telepítésének és beállításának részletei:

Telepítés

RedHat (CentOS) alatt az alábbi parancsokkal telepíthetők a szükséges szoftverek

wget http://download.opensuse.org/repositories/security://shibboleth/CentOS_5... -P /etc/yum.repos.d
yum install shibboleth.x86_64
chkconfig --levels 345 shibd on

Súgó: https://wiki.aai.niif.hu/index.php?title=Shib2SPRHELInstall és https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPLinuxRPMInstall

Shibboleth konfiguráció

A /etc/shibboleth/shibboleth2.xml file szerkesztése (annak az intézménynek az előírásai alapján, ami a szolgáltatást nyújtja).
Súgó: https://wiki.aai.niif.hu/index.php?title=DrupalShibbolethReadmeDev és https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPGettingStarted

A handlerURL szokásosan /Shibboleth.sso, a SessionInitiator címe (Location) /Login, így a teljes belépési link http(s?)://www.example.org/Shibboleth.sso/Login lesz. Ha a webszerverünk megfelelő SSL tanúsítványokkal rendelkezik, akkor a CredentialResolver tartalmát is töltsük ki ugyanazokkal (crt, key).

Az attribute-map.xml fájlban állítsuk be az igényelt attribútumokat és azok általunk használt nevét (az adott intézmény előírásai és az igényeink alapján)!
Súgó: https://wiki.aai.niif.hu/index.php?title=HREFAttributeSpec

Apache konfiguráció

(A megfelelő Apache modul betöltéséről a telepítőkészlet gondoskodik.)

Egyrészt a teljes (virtuális) szerverre (legalább HTTPS felett) célszerű beállítani a sibboleth működését és a környezeti változói elérését:

<Location />
  AuthType Shibboleth
  ShibRequireSession Off
  ShibUseHeaders On
  require shibboleth
</Location>

Majd a Drupal elérési útjára a megfelelő típusú azonosítást (Lazy vagy strict session auth).
Lazy session esetében az előbbi beállítás elegendő, nincs más teendő. Strict session esetében ... érdemes átolvasni az előbbi leírást a bonyodalmakról.

Drupal konfiguráció

Telepíteni és engedélyezni kell a shib_auth modult, majd a beállításai között (admin/user/shib_auth):

  • Be kell írni a beállított Login (és Logout) handler címét (pl.: https://www.example.org/Shibboleth.sso/Login).
  • Célszerű megkövetelni a HTTPS használatát is.
  • Eleinte állítsuk be a Debug opciót is, hogy lássuk, milyen attribútumok érkeznek az autentikációs szervertől!
  • A felhasználói névre és email címre vonatkozó attribútumok nevét adjuk meg a megfelelő mezőkben!
    Ez lehet pl. a HTTP_SN vagy HTTP_DISPLAYNAME, illetve a HTTP_MAIL.
  • Nagyon hasznos szolgáltatás az "Account linking", amivel a meglevő felhasználók kezdeményezhetik, hogy a saját helyi belépésüket és a központi azonosítójukat a rendszer összekapcsolja (így később bármelyikkel bejelentkezhetnek).

A Blokkok (admin/build/block) oldalon beállíthatjuk a "Shibboleth authentication" blokk elhelyezését és címét.

(folyt.köv.)