Shibbolizace Portálu EIZ spočívá v implementaci:
K záznamu o elektronickém zdroji (dále jen zdroj(e)) byla přidána metadatová pole, která nesou následující informace:
Výše zmíněné informace lze nastavit standardním způsobem editací záznamu o zdroji v auth/ části Portálu EIZ. Ve veřejné části jsou tyto informace následně prezentovány jednak ve stručných seznamech zdrojů (přímý link dle nastavení v konfiguračním souboru - je možné sladit Shibboleth a EZproxy, viz dále), jednak u zobrazení detailních informací o zdroji - vyplněným odkazem ve výpisu metadat zdroje a ikonou gryfa v pravém horním rohu. Po přejetí kurzorem myši přes ikonu se otevře javascriptové okno, které informuje o tom, že zdroj podporuje Shibboleth, zobrazí informace a linky vyplněné v auth/ části portálu (viz výše). Klinutím na ikonu gryfa je uživatel přenesen na nápovědu (viz Vzdálený přístup přes Shibboleth). Příslušné popisky lze standardně upravovat přes I18N.
Související konfigurační direktivy:
shibboleth_config.php:
Do menu byl přidán odkaz (možno i deaktivovat) na statickou stránku informující uživatele o připojování k elektronickým informačním zdrojům přes Shibboleth. Stránka je taktéž odkazována ze záznamu o zdroji (kliknutím na ikonu gryfa). Stránku lze snadno modifikovat v obou jazykových mutacích (en i cs) standardním mechanismem přes I18N.
Související konfigurační direktivy:
configv2.php:
V rámci samotného Portálu EIZ byla implementována autentizace uživatelů přes Shibboleth. Uživatel přihlášením získá komfortnější práci s shibbolizovanými elektronickými zdroji (není nutné se k nim opakovaně přihlašovat), zároveň i Portál samotný poskytuje dodatečné info o jednotlivých zdrojích na základě informací o přihlášeném uživateli. Prozatím je implementován mechanismus pro zjištování přístupnosti zdrojů na základě příslušnosti uživatele k daným částem univerzity (obvykle atributy affiliation, ou apod., lze konfigurovat) - zdroje přístupné jen z vybraných fakult (tuto informaci uchovává přímo Portál EIZ) jsou vůči informacím o uživateli kontrolovány a uživatel je pak upozorněn na to, že k daným zdrojům nemá přímý plný přístup.
V seznamech zdrojů jsou nedostupné zdroje označeny šedou barvou (lze měnit přes CSS). Lze nastavit, aby se při přejetí myši přes takový zdroj uživateli zobrazilo dodatkové okno s informací o tom, proč je takový zdroj nedostupný (viz $SHIB_SHOW_JS_TOOLTIP_IN_LISTS).
U detailních informací o zdroji se název ukazuje v bílém poli, po ním je text informující o nedostupnosti zdroje. Při přejetí myší přes tento text se uživateli ukáže okno s dodatečným vysvětlením, proč je daný zdroj nedostupný. Vzhled nadpisu a textu o nedostupnosti je možné měnit přes CSS, samotný text včetně doplňujících informací přes i18n.
V budoucnu je možné implementovat další funkce (profily apod.).
Portál pracuje jako SP na www serveru Apache s podporu mod_shib - tedy přímo s nativní knihovnou Shibboleth SP 2. V rámci implementace byla vyzkoušena i knihovna simpleSAMLphp, pro plnou funkčnost s touto knihovnou by však bylo nutné doprogramovat některé části kódu. Výsledný programový kód počítá s budoucím možným využitím simpleSAMLphp - knihovnu bude možné volit nastavením v konfiguračním souboru.
Konfigurace výše zmíněných knihoven je podrobně popsána v jejich dokumentaci a není předmětem této zprávy. (V závěru zprávy je uvedená pouze část konfigurace modulu mod_shib serveru Apache, která se týká výlučně Portálu EIZ.)
Implementace příslušných funkcí (modulu) v Portálu EIZ je řešena ve třídě uzivatel (soubor uzivatel_class.php
). Třída implementuje mechanismy pro přihlášení uživatele (na Portálu se využívá především lazy session) - kontruktory mapující atributy na objekt třídy uzivatel dle konfiguračního souboru a dále metody pro ztotožnění částí univerzity posílaných přes Shibboleth s částmi univerzity, se kterými pracuje Portál EIZ.
Do části auth/
bylo přidáno rozhraní pro editaci částí univerzity (umožňuje definovat jejich identifikátor posílaný IdP).
Celý modul je možné poměrně do detailů ovládat přes příslušné konfigurační direktivy v souboru shibboleth_config.php.
$SHOW_MENU_VZDALENY_PRISTUP_SHIB = [true | false]
Nastavuje má-li se v levém menu zobrazovat odkaz na nápovědu pro Shibboleth.
$ENABLE_SHIBBOLETH = [true | false]
Základní nastavení, vypíná/zapíná podporu pro Shibboleth pro celý Portál EIZ. Je-li nastavena na false, pak jsou ostatní související direktivy ignorovány. Pro podporu indikace podpory Shibboleth u zdrojů musí být nastavena hodnota true
.
$ENABLE_SHIBBOLETH_AUTH = [true | false]
Zapíná podporu pro autentizaci uživatelů v Portálu EIZ.
$SHIBBOLETH_LIBRARY = [‘native’ | ‘simpleSAMLphp’]
Výběr použité knihovny. simpleSAMLphp zatím není plně podporována.
$SHIB_AUTH_RESOURCE = <resource>
Pouze pro simpleSAMLphp. Nastavení resource pro použitou autentizaci.
$SHIB_LOGIN_URL = <url>?target=
$SHIB_LOGOUT_URL = <url>?return=
URL pro login a logout pro nativní knihovnu Shibboleth SP 2. Předpokládá se ve tvaru <url> s parametry target a return, kterou jsou dynamicky doplňovány podle stránky, na které se uživatel Portálu EIZ právě nachází. (Jako jméno serveru lze použít direktivu $MY_FQDN
).
$SHIB_ATTR_* = <atribut>
Mapování jednotlivých obvyklých atributů. (Doporučeno ponechat default nastavení.)
$SHIB_DISPLAY_NAME = <atribut>
Atribut, jehož hodnota bude použita jako jméno přihlášeného uživatele v levém okýnku s informací o přihlášení přes Shibboleth.
$SHIB_DISPLAY_FULL_NAME = <atribut>
$SHIB_DISPLAY_EMAIL = <atribut>
$SHIB_DISPLAY_EPPN = <atribut>
Atributy, jejichž hodnoty se použijí pro zobrazování na Portálu (především v části shib/ s informacemi o přihlášeném uživateli).
$SHIB_AUTH_AUTHORIZATION_ATTRS = {<atribut1>, <atribut2>, …}
Atributy, ve kterých jsou zasílány informace o příslušnosti uživatele k některé části univerzity (obvykle k fakultě apod.). Vůči hodnotám těchto atributů je pak kontrolována přístupnost zdroje.
$SHIB_AUTH_AUTHORIZATION_DIV = <znak_ASCII>
V rámci atributů z $SHIB_AUTH_AUTHORIZATION_ATTRS může být posíláno více hodnot v jednom řetězci. Tato direktiva definuje jejich oddělovací znak (obvykle středník).
$SHIB_DISABLE_EZPROXY_LINK = [true | false]
Nastavená na true vypíná odkaz na přihlášení přes EZproxy ve stručných seznamech zdrojů. Odkaz je vypnut jen tehdy, je-li u zdroje nastaven přístup přes Shibboleth, a nahrazen odkazem pro přístup přes Shibboleth.
$SHIB_SHOW_JS_TOOLTIP_IN_LISTS = [true | false]
Pokud je zapnuta a fungující autentizace přímo v Portálu EIZ, pak tato direktiva vypíná/zapíná v seznamech zdrojů funkci doplňkových informací u nedostuponých zdrojů. Informace (viz $txt_shib_nedostupny
v eizlibs/i18n/zdroj_strucne_cs*) je zobrazena při javascriptové události onmouseover u zdrojů, které jsou pro přihlášeného uživatele nedostupné.
Protože auth/ část portálu využívá (prozatím) jiný přihlašovací mechanismus než Shibboleth, je nutné provést příslušné úpravy v konfiguračním souboru serveru Apache. Zároveň je nutné pro celý Portál EIZ nastavit přihlášení přes Shibboleth na lazy session.
<LocationMatch “/(?!auth/)”> Authtype shibboleth ShibRequireSession Off Require shibboleth </Location>