17/03/2015, 20:29
|
|
Respuesta: Consulta Parte 2 Ejercicio 2 (3,5 punts)
2.1 Introducción
El objetivo de este ejercicio es usar el framework XACML para aplicar autorización al acceso a recursos de la aplicación web programada en el ejercicio 1. Básicamente, queremos sustituir JAAS por XACML+sistema de autenticación.
Tomcat no integra XACML por defecto y, por eso, usaremos otro tipo de tecnología
que integre XACML. En este caso, utilizaremos el WSO2 Application Server (como
servlet container) y el WSO2 Identity Server (como servidor de identidad que
autenticará y autorizará a los usuarios). A continuación se muestra una imagen de la arquitectura que tendríamos que construir:
2.2 Especificaciones
Tal como se ha dicho, la aplicación web a proteger será la misma que la requerida en el ejercicio 1, por lo tanto, las especificaciones anteriores en cuanto a usuarios,
módulos, roles y operaciones son las mismas.
Igualmente, el sistema proporcionado debe permitir que sólo los usuarios
registrados puedan acceder a la aplicación con su login y contraseña. A partir de
este momento tienen que visualizar un menú con todos los módulos mencionados
(nóminas, compras y ventas), pero para cada módulo sólo se mostrarán las
opciones a las que el usuario tiene acceso según los roles a los que pertenece.
Si hay un módulo al que el usuario no tiene acceso a ninguna funcionalidad, debe
mostrar un mensaje indicando que no tiene acceso a dicho módulo.
Las diferencias principales con respecto al ejercicio 1 son las siguientes:
• En lugar de utilizar security-constraints o similar, ahora la aplicación web tendrá
un Filtro (AuthenticationFilter) encargado de evitar que un usuario no
autenticado acceda a páginas y recursos de la aplicación. Este filtro mostrará
una pantalla de login cuando un usuario llegue a la aplicación, y la pareja
login/password introducido se enviará al "Identity Server" para que compruebe
en su base de datos (User Directory) si las credenciales son correctas. Con
este proceso, el usuario quedará autenticado.
• Dado que usamos el User Directory del "Identity Server", ya no necesitamos
utilizar nuestro JAAS LoginModule ni nuestro fichero de shadowed passwords.
• La aplicación web también tendrá un Filtro (EntitlementFilter) diseñado para
capturar cualquier petición sobre un recurso específico protegido. Este Filtro
hará de PEP y básicamente lo que hará será comunicarse con el PDP situado
en el "Identity Server", indicándole la identidad del usuario que quiere acceder
al recurso en particular. El PDP tendrá una serie de políticas XACML definidas
(se habrán registrado en el sistema mediante el PAP también presente en el
"Identity Server") y mediante los atributos específicos del usuario y dichas
políticas decidirá si éste puede acceder al recurso o no.
Como punto de partida, se proporciona junto con este enunciado un manual de
despliegue de una aplicación web sencilla donde hay un recurso (un .jsp) a
proteger utilizando XACML y la tecnología WSO2 (tal y como se muestra en la
arquitectura anterior). Se recomienda tener este ejemplo funcionando correctamente y, entonces, adaptarlo para ofrecer las funcionalidades solicitadas en este ejercicio. En el ejemplo sólo hay un recurso a proteger (protected.jsp) y sólo se trata el acceso al recurso, no se considera la existencia de operaciones dentro de un módulo. Además, la política XACML 3.0 proporcionada simplemente indica que el usuario llamado "admin" puede acceder al recurso llamado "protected.jsp" haciendo una acción "GET".
En consecuencia, para resolver el ejercicio correctamente se debería:
• Adaptar el ejemplo proporcionado para que trabaje con los módulos requeridos
(nóminas, compras y ventas).
• Considerar la existencia de operaciones dentro de cada módulo.
• Proporcionar unas nuevas políticas que consideren los roles de los usuarios
a la hora de decidir el acceso a los recursos, en vez de su identidad.
2.3 Entrega
La entrega de la práctica debe incluir los siguientes puntos:
• Documento en PDF que contenga:
◦ Explicación de los pasos que se han seguido para resolver cada punto
solicitado (adaptar la aplicación web al entorno WSO2 planteado,
explicación de las políticas XACML3.0 que se han definido, etc.).
◦ Juego de pruebas: Se tiene que mostrar utilizando *capturas de pantalla*
el funcionamiento de la aplicación web para los usuarios Petyr Baelish
(Encargado de compras) y Daenerys Targaryen (Encargada de personal).
Se tiene que poder seguir el proceso desde la página inicial de login, hasta
la pantalla (o pantallas) donde se muestren las diversas operaciones que
puede realizar el usuario en cuestión.
• Vuestra carpeta *entera* de la aplicación web (En el WSO2 Application
Server se encuentra en la carpeta \repository\deployment\server\webapps)
• El código fuente de todos los servlets y otras clases que se hayan
implementado. No se evaluarán ejercicios en los cuales no se proporcione el
código fuente
• El .war de la aplicación para poder desplegarla en un WSO2 Application
Server.
• El .xml con las reglas XACML 3.0 que hayáis definido.
• URL necesaria para acceder a la aplicación.
Toda la información anterior se debe comprimir en un archivo ZIP con nombre
“Ejercicio2” el cual se comprimirá dentro del ZIP principal que debe entregarse
mediante el enlace de "Entrega y registro de AC".
NOTA: El PDF que se pide, aportará un máximo de 0,5 puntos a la nota final. Su
valoración dependerá de que cubra todos los puntos requeridos, del nivel de detalle de
las explicaciones y de su calidad en general.
2.4 Corrección (**IMPORTANTE**)
Para verificar el funcionamiento de la práctica, se tomará el .war (o la carpeta entera
de la aplicación web) facilitado en el zip y se copiará directamente dentro de la
carpeta \repository\deployment\server\webapps del WSO2 Application Server del
consultor. En el WSO2 Identity Server del consultor estarán definidos los usuarios
especificados en el enunciado con los passwords y los roles correspondientes. Del zip
también se tomará el .xml con las reglas XACML definidas por el alumno, se importará
y se publicarán en el PDP del WSO2 Identity Server del consultor. Finalmente, se
introducirá en el browser la URL de acceso a la aplicación facilitada.
Por favor, antes de hacer la entrega, seguid vosotros mismos este proceso y
aseguraos que todo se ejecuta convenientemente en el entorno fijado para evitar
problemas en el proceso de evaluación. Comprobad también que vuestra entrega
contiene todos los puntos indicados en la sección 2.3 Entrega.
Gracias. |