WebKiv: ModulLogin

from Wiki KIVu

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:

Podrobnosti viz ZabezpecenePrihlaseni (Jednoduché řešení).

Instalace

(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: login fomuláře.

Poznámky k implementaci


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:

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:

b) Změní se soubor:

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:

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

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:
kompletní řešení


Patří do KategorieModulyWebuKiv

Retrieved from http://wiki.kiv.zcu.cz/WebKiv/ModulLogin
Content last modified on 15 December 2011, 14:53