Hlavní menu
Nástroje |
WebKiv.ModulLogin HistoryHide minor edits - Show changes to output 15 December 2011, 14:53
by
- Changed lines 167-170 from:
[[Attach:JarInstallFile_complete.zip|kompletní řešení]] to:
[[Attach:JarInstallFile_complete.zip|kompletní řešení]] ---- Patří do KategorieModulyWebuKiv 25 January 2010, 08:58
by
- Changed line 18 from:
* opatchuje se OpenCms (patch je v svn) to:
* opatchuje se OpenCms (patch je v svn) -- pro build je třeba použít opatchovaný ant script opencms, aby se přeložily i cz.zcu.kiv třídy) 25 January 2010, 08:56
by
- Changed line 18 from:
* opatchuje se OpenCms (TBD kde je patch) to:
* opatchuje se OpenCms (patch je v svn) 02 October 2009, 18:12
by
- přesunuto z ManualModulLoginAdded lines 1-167:
Zde jsou technické poznámky k modulu přihlašování - integrovaný Kerberos login pro OpenCms. V tomto návodu se předpokládá, že systém [=OpenCms=] je nainstalován ve standardním adresáři opencms. !! Jednoduché řešení (nasazení 4/2009) Platí pro nasazení Apache + Tomcat, kde: * vynucování HTTPS obstaráva Apache * Tomcat není schopen rozpoznat HTTP x HTTPS - [@request.isSecure()@] je vždy [@false@] * nelze použít validační filtr. Podrobnosti viz ZabezpecenePrihlaseni (Jednoduché řešení). !!! Instalace * do [@<opencmsroot>/WEB-INF/lib@] adresáře se přidá [@kerberos-authentication.jar@] (J.Boháč BP 2007) TBD .jar ke stažení * opatchuje se OpenCms (TBD kde je patch) * z plné varianty popsané níže se použijí pouze kroky 6 a 7 * nastaví se zabezpečení následujících přihlašovacích stránek (udělá se v cfg Apache): ** /opencms/system/login ** umístění [@login_element_secure.jsp@] resp. frontendové stránky, do které je vkládán * pokud se používá v šabloně login_element.jsp (tlačítko "přihlásit se" - nikoli odkaz), nastaví se v login_element.jsp pro přihlášení form action odkaz na [@login_element_secure.jsp@] resp stránku na které je vkládán (Prostě: pouze na zabezpečené stránce může být login formulář, který je v @@elements/secure-login-form.jsp@@ .) Archív s instalačními soubory: [[Attach:login_forms.zip|login fomuláře]]. !!! Poznámky k implementaci * V přihlašovacím formuláři @@secure-login-form.jsp@@ je třeba nastavit @@final String SITE_URI@@ na správnou hodnotu podle webu, na kterém je přihlašování nasazeno (např. @@= "http://beta.kiv.zcu.cz";@@). ---- !! Kompletní řešení '''[+1.+] '''Zastavte Tomcat. '''[+2.+] '''Nastavení zabezpečeného přístupu https v souboru [@<CATALINA_HOME>/conf/server.xml@] pro Tomcat. Viz. [[http://tomcat.apache.org/tomcat-5.5-doc/ssl-howto.html]] '''[+3.+] '''Zabezpečení back-end (workplace) [=OpenCms=] {-V souboru <opencmsroot>/WEB-INF/config/opencms-system.xml, nastavíme: -} [@<sites> <workplace-server>https://server_name1:secure_port</workplace-server> <default-uri>/sites/default/</default-uri> <site server="http://server_name1:unsecure_port" uri="/sites/default/"> <secure server="https://server_name1:secure_port" exclusive="true" error="false" /> </site> </sites>@] {-Tag ''<secure>'' v daném tvaru je třeba jen u definice ''<site>'', která má server shodný s ''<workplace-server>''.-} *NALEZEN PROBLÉM*: divné chování workplace cms po výše uvedeném nastavení '''Použít toto řešení:''' Do ''<opencmsroot>/WEB-INF/web.xml'' [@<security-constraint> <web-resource-collection> <web-resource-name>SecureWorkplace</web-resource-name> <url-pattern>/opencms/system/*</url-pattern> </web-resource-collection> <user-data-constraint> <transport-guarantee>CONFIDENTIAL</transport-guarantee> </user-data-constraint> </security-constraint>@] *Otazník*: jak u multisite? '''[+4.+] '''Instalace změněných souborů na systém [=OpenCms=] K instalaci slouží _ANT-soubor_. Před jeho spuštěním je potřeba vzít na vědomí následující věci: * Spuštěním tohoto souboru dojde k přepsání některých tříd v instalaci [=OpenCms=]. * Aby bylo možné tyto změny kdykoliv vrátit a uvést tak systém do původního stavu, obsahuje _ANT-soubor_ také cíl [@resetChanges@]. Při instalaci se totiž vytvoří záloha původního souboru [@opencms.jar@]. Místo kam se tento soubor uloží, je možné nastavit pomocí property [@backupDir@] implicitně se tento adresář jmenuje [@Backup@]. Pomocí cíle [@resetChanges@] se tedy tento původní soubor může vrátit na Tomcat a vymazat tak změny provedené v [=OpenCms=]. Instalace se spustí příkazem: ->[@ant -buildfile installToOpenCms.xml@] a provede automaticky následující kroky: a) Do [=OpenCms=] se nakopírují následující soubory: * [@cz.zcu.kiv.opencms@] * [@authentication.jar@] b) Změní se soubor: * [@opencms.jar@] c) V instalačním adresáři Tomcatu se vytvoří adresář [@Kerberos_Configuration@], do kterého se nakopírují soubory potřebné pro správnou funkčnost autentizace protokolem Kerberos: * [@krb5.conf@] * [@KerbNastaveni.conf@] '''[+5.+] '''Nastavení filtru v [@<opencmsroot>/WEB-INF/web.xml@] Do tagu [@<web-app>@] přidáme: [@<filter> <filter-name>[=ValidateAuthFilter=]</filter-name> <filter-class>cz.zcu.kiv.opencms.ValidateAuthFilter</filter-class> <init-param> <param-name>timeout</param-name> <param-value>15000</param-value> </init-param> <init-param> <param-name>val-url</param-name> <param-value>https://server_name1:secure_port/opencms/opencms/system/modules/org.opencms.welcome/elements/login_element_secure.jsp</param-value> </init-param> </filter> <filter-mapping> <filter-name>ValidateAuthFilter</filter-name> <url-pattern>/opencms/*</url-pattern> </filter-mapping>@] [@server_name1:secure_port@] - jméno serveru s portem HTTPS [@timeout@] – čas po kterém bude při requestu vyvolána validační smyčka\\ [@val-url@] – url validační stránky, která je součástí welcome modulu Filter je mapován na všechny stránky. '''[+6.+] '''Nastavení cesty k [@LoginConfigurationFile@] Tento file říká Javě, že si má pro autentikaci používat Kerberos (příslušné třídy v [@com.sun.security.auth.module.Krb5LoginModule@]). Cesta k němu se nastavuje v Tomcat Java Options – tato vlastnost poté platí jen pro Tomcat a ne pro celý JVM. Soubor se při instalaci modulu [=ANTem=] nakopíruje do adresáře [@Kerberos_Configuration@] v rootu Tomcatu. Nastavení cesty se provede pomocí následující konstrukce: [@-Djava.security.auth.login.config=CESTA_K_KerbNastaveni.conf@] Pro Linux se toto provede pomocí doplnění hodnoty proměnné [@CATALINA_OPTS@] v souboru [@/etc/environment@], nebo přímo ve spouštěcím scriptu tomcatu ([@/etc/init.d/tomcat@]). Pro změnu těchto souborů musíte mít root práva. Dalším krokem je nastavení cesty k souboru, který obsahuje parametry protokolu Kerberos 5. Tento soubor by se na všech počítačích používaných v prostředí ZČU již měl nacházet na správném místě (kde jej Java standardně vyhledává). Na linuxových strojích se tento soubor jmenuje [@krb5.conf@] a je v adresáři [@/etc@], na windows se tento soubor jmenuje [@krb5.ini@] a měl by být v adresáři [@c:\winnt@]. Pokud se tento soubor nevyskytuje na jednom z těchto míst, existují další, kde jej Java hledá – viz dokumentace v JAAS. Eventuelně (stalo se nám s Javou 6 která se neuměla domluvit s kerberem na použitém šifrování - výjimka [@BadEncryptionType@]) je možné cestu k tomuto souboru nastavit pomocí parametru: [@-Djava.security.krb5.conf=CESTA_K_SOUBORU_KRB5.CONF@] Tento soubor se při instalaci nakopíruje do adresáře [@Kerberos_Configuration@] v instalačním adresáři Tomcatu (stejně jako Login Configuration File). '''[+7.+] '''Spusťte Tomcat. '''[+8.+] '''Instalace welcome modulu do [=OpenCms=] * přihlášení na back-end (workplace), přejít do Admin view * naimportovat modul [@org.opencms.welcome_4.2.5.zip@] * zpět do Explorer view, jít do [@system/modules/org.opencms.welcome/elements/@] * v [@login_element.jsp@] upravit odkaz na [@login_module_secure.jsp@] ve formuláři a javascriptu, viz. řádky s TODO komentářem * upravit url v [@login_element_secure.jsp@] pro přechod na zabezpečené url (na sebe sama při nezabezpečeném přístupu), viz. TODO komentář '''[+9.+] '''Restartujte Tomcat. '''[+10.+] '''Funkce by měly být k dispozici. '''[+11.+] '''Pokud se objevuje stále starý modul (tzn. na nezabezpečené stránce je formulář pro přihlašovací údaje), je třeba vymazat adresář [@org.opencms.welcome@] v [@<opencmsroot>/WEB-INF/jsp/online/system/modules/@] '''[+12.+] '''Restartujte Tomcat. !!! Používání modulu Doporučení: Všechny front-end edit stránky přes HTTPS protože v tom případě se validují i POST požadavky. Jak získat v mé šabloně "zabezpečenou" login screen: úplně stejně jako v [@org.opencms.welcome.template.*.jsp@] - náš modul si vše zařídí sám Archív s instalačními soubory:\\ [[Attach:JarInstallFile_complete.zip|kompletní řešení]] |