20.04.2014 Views

Desarrollo de Soluciones Cliente-Servidor para la Verificación ...

Desarrollo de Soluciones Cliente-Servidor para la Verificación ...

Desarrollo de Soluciones Cliente-Servidor para la Verificación ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

3.2. Single Sign-On <strong>para</strong> el Web 37<br />

tema operativo, lo que significa que <strong>de</strong>sarrol<strong>la</strong>r aplicaciones multip<strong>la</strong>taforma conformes<br />

al estándar BioAPI no es una tarea sencil<strong>la</strong>. Portar el Framework BioAPI al entorno Java<br />

facilitaría el <strong>de</strong>sarrollo <strong>de</strong> aplicaciones biométricas orientadas al Web <strong>de</strong>bido a que ya<br />

existen numerosas tecnologías orientadas al Web realizadas en Java. Es por ello, que <strong>la</strong><br />

existencia <strong>de</strong> una versión puramente Java <strong>de</strong> <strong>la</strong> BioAPI proporcionaría numerosas ventajas,<br />

y a<strong>de</strong>más contaría con <strong>la</strong> particu<strong>la</strong>ridad <strong>de</strong> facilitar <strong>la</strong> extensión <strong>de</strong> <strong>la</strong>s aplicaciones<br />

biométricas a dispositivos móviles. Existe una propuesta <strong>de</strong>l INCITS [INCITS, WWW]<br />

sobre <strong>la</strong> estandarización <strong>de</strong> una especificación <strong>de</strong> <strong>la</strong> BioAPI en Java que todavía se encuentra<br />

en proceso. A<strong>de</strong>más, existe un problema <strong>de</strong> interoperabilidad entre el nuevo marco<br />

puramente Java y <strong>la</strong>s existentes implementaciones <strong>de</strong> los BSPs realizados en C/C++ no<br />

solucionado a priori. Es por ello, por lo que se necesita una solución con disponibilidad<br />

inmediata.<br />

Para acce<strong>de</strong>r al Framework BioAPI hecho en C/C++ <strong>de</strong>s<strong>de</strong> el entorno Java, se pue<strong>de</strong><br />

usar un Java Wrapper basado en <strong>la</strong> tecnología Java Native Interface (JNI). JNI es una<br />

interfaz <strong>de</strong> programación estándar <strong>para</strong> escribir métodos nativos que se pue<strong>de</strong>n invocar<br />

<strong>de</strong>s<strong>de</strong> Java, e incluso, po<strong>de</strong>r utilizar <strong>la</strong> máquina virtual Java <strong>de</strong>ntro <strong>de</strong> aplicaciones nativas.<br />

En el momento en el que nos p<strong>la</strong>nteamos en esta Tesis <strong>la</strong> búsqueda <strong>de</strong> un Java Wrapper<br />

que nos permitiera utilizar el Framework BioAPI, existían dos proyectos: el JNI BioAPI<br />

Wrapper <strong>para</strong> Windows <strong>de</strong>sarrol<strong>la</strong>do por Gens Software, y el proyecto <strong>de</strong> código libre<br />

JBioAPI <strong>para</strong> Linux/Unix. Ambos proyectos basados en <strong>la</strong> especificación BioAPI 1.1.<br />

El principal problema que se nos presentó fue que los dos proyectos no eran compatibles<br />

entre sí, y eso complicaba el <strong>de</strong>sarrollo <strong>de</strong> aplicaciones multip<strong>la</strong>taforma conformes<br />

al estándar BioAPI. Por otra parte, sendos proyectos so<strong>la</strong>mente ofrecían acceso a <strong>la</strong>s abstracciones<br />

<strong>de</strong> alto nivel, y no a <strong>la</strong>s primitivas <strong>de</strong> bajo nivel, por lo que no permitían dividir<br />

el proceso <strong>de</strong> autenticación entre una máquina cliente y un servidor. Fue necesario realizar<br />

varias contribuciones al proyecto JBioAPI <strong>para</strong> po<strong>de</strong>r ofrecer una solución viable a este<br />

problema, tal y como veremos en <strong>la</strong>s sección 4.2.5.<br />

3.2. Single Sign-On <strong>para</strong> el Web<br />

Los sistemas Single Sign-On (SSO) permiten transportar <strong>la</strong> información <strong>de</strong> autenticación<br />

<strong>de</strong> un sistema a otro. En otras pa<strong>la</strong>bras, supongamos que disponemos <strong>de</strong> una serie<br />

<strong>de</strong> servicios distribuidos en diferentes proveedores Web, en un entorno normal, al acce<strong>de</strong>r<br />

a cualquier servicio <strong>de</strong> un proveedor necesitamos autenticarnos. Este hecho provoca<br />

<strong>la</strong> pérdida <strong>de</strong> tiempo en varios procesos <strong>de</strong> autenticación y disminuye <strong>la</strong> usabilidad. En<br />

lugar <strong>de</strong> esto, los sistemas Single Sign-On nos permiten centralizar este proceso. La i<strong>de</strong>a<br />

es que el usuario se autentica una so<strong>la</strong> vez contra el sistema centralizado, y éste le expen<strong>de</strong><br />

un tícket. Cuando el usuario quiere usar un <strong>de</strong>terminado servicio presenta este tícket,<br />

el servicio se conecta con el servidor Single Sign-On <strong>para</strong> pedir <strong>la</strong> validación <strong>de</strong>l tícket<br />

presentado por el usuario, en caso <strong>de</strong> validar correctamente el usuario, éste pue<strong>de</strong> acce<strong>de</strong>r<br />

al servicio como si se hubiera autenticado en él <strong>de</strong> forma normal. Como hemos dicho,<br />

un SSO es un procedimiento <strong>de</strong> autenticación que habilita al usuario <strong>para</strong> acce<strong>de</strong>r a varios<br />

sistemas con una so<strong>la</strong> instancia <strong>de</strong> i<strong>de</strong>ntificación, también se les l<strong>la</strong>ma sistemas <strong>de</strong><br />

autenticación reducida (Reduced Sign On Systems) y hay cinco tipos principales:

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!