LPS:WebAuth/Webová autentizovaná proxy
Webová proxy autentizovaná WebAuthem
V rámci řešení grantu univerzitní knihovny ZČU jsme museli vyřešit problém, kdy (pouze) našim uživatelům zprostředkujeme přístup k nakoupeným elektronickým informačním zdrojům (EIZ). Tento případ by samozřejmě řešilo nasazení identity federation (např. tedy Shibbolethu), nicméně k tomu je zapotřebí, aby na toto řešení byly připraveny obě strany. Většinou se přístup k EIZ na straně poskytovatele řeší vyčtem povolených IP adres, ze kterých je možné přistupovat.
Toto velmi jednoduché elegantní řešení má však jeden háček. Uživatel může chtít přistupovat k EIZ z jiného prostředí, například z domova, internetové kavárny nebo počítačové učebny univerzity, kde je na stáži. V těchto případech je mu přístup k EIZ odepřen.
Jednoduchým řešením je zprovoznit webovou proxy v IP rozsahu organizace tak, že bude mezi uživatelem a poskytovatelem EIZ zprostředkovávat veškerou komunikaci. Z pohledu poskytovatele bude vše v pořádku, neboť přistupující stroj bude z povoleného IP rozsahu.
Abychom nezprostředkovali přístup všem uživatelům Internetu, ale pouze uživatelům z dané organizace, je nutné na webové proxy zajistit ověřování přistupujících uživatelů. K tomuto účelu použijeme již osvědčené řešení ověřování v prostředí WWW: WebAuth.
Řešení WebAuth je však v současné době dostupné pouze pro verze Apache 2.0.x, které neumožňují přes webovou proxy tunelovat údaje uložené v cookies. Jelikož většinou v těchto cookies poskytovatelé EIZ uchovávají údaje o přistupujícím uživateli, je jejich použití nutné. Za tímto účelem jsme museli WebAuth přiohnout pro Apache 2.2.x, neboť v této verzi je již možné cookies mezi uživatelem a poskytovatelem EIZ bezproblémově tunelovat. Získáváme tak webovou autentizovanou proxy, jejíž schéma je patrné z obrázku.
.
Konfigurace takovéto webové autentizované proxy ve WWW serveru Apache 2.2.x vypadá pak následovně:
ProxyRequests on <Proxy http://proquest.umi.com/*> order allow,deny allow from all AuthType WebAuth require valid-user RequestHeader set Webauthproxy ":%{WEBAUTH_USER}e:" WebAuthExtraRedirect on </Proxy> <VirtualHost 147.228.54.29:8443> ServerName proquest.zcu.cz ServerAdmin bar@uk.zcu.cz LogFormat "%h %l %u %t %v \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" virtual ErrorLog /usr/local/apache/logs/ssl-proquest-error_log CustomLog /usr/local/apache/logs/ssl-proquest-access_log virtual SSLEngine on SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL SSLCertificateFile /usr/local/apache/ssl/server.crt SSLCertificateKeyFile /usr/local/apache/ssl/server.key <Location /> ProxyPass http://proquest.umi.com/ ProxyPassReverse http://proquest.umi.com/ ProxyPassReverseCookieDomain .umi.com proquest.zcu.cz ProxyPassReverseCookiePath / / </Location> </VirtualHost>