čtvrtek 27. října 2011

Aplikační server Glassfish V2 a WS-security

V rámci projetku SkyLinkGW realizovaný pro ČSA bylo zapotřebí provést zabezpečení webových služeb. Bezpečnost webových služeb lze realizovat na dvou úrovních.
  • HTTPS - na úrovni komunikačního protokolu. V tomto případě se zapnutou klientskou autentizací certifikátem.
  • WS-Securtity - specifikace pro zabezpečení webových služeb.
Pro naše účely bylo vhodné použít kombinaci těchto mechanismů - jednak veškerou komunikaci zabezpečit HTTPS protokolem (s klientskou autentizací certifikátem), tak i použít mechanismus WS-Securtity UsernameToken. Metoda HTTPS spočívá především v konfiguraci aplikačního serveru, což velmi usnadňuje její použirí a urychluje realizaci. UsernameToken poskytuje díky ověřování přes jméno/heslo širší možnosti v oblasti autorizace a udělování práv na aplikační úrovni.

Implementaci UsernameToken se nevyhnuly drobné komplikace. Celý systém je realizován na starší verzi 2.1.1 aplikačního serveru GlassFish, která v sobě nese starší verze knihoven pro práci s webovými službami - knihovny Metro. Webové služby zabezpečené metodou UsernameToken se nechovaly příliš korektně a docházelo k chybnému ověřování klienta. Vše vyřešilo povýšení verze knihoven Metra podle návodu na http://metro.java.net/2.1.1/

Nyní se chystá první verze systému se zabezpečenými webovými službami.

Použité zrdoje:

http://stackoverflow.com/questions/4824391/configuring-glassfish-for-ws-security-using-usernametoken

http://www.oasis-open.org/committees/wss/documents/WSS-Username-02-0223-merged.pdf

http://stackoverflow.com/questions/461753/webservice-using-security-usernametoken

http://download.oracle.com/docs/cd/E17802_01/webservices/webservices/reference/tutorials/wsit/doc/WSITTutorial.pdf

http://metro.java.net/guide/Deploying_Metro_endpoint.html

http://www.ibm.com/developerworks/java/library/j-jws10/index.html

http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0.pdf