miércoles, 13 de marzo de 2013

WebCenter Portal: Restringir el acceso a la Administration Console

La consola de Administración de WebCenter Portal está siempre accesible desde /admin.

(Link to english version)

WebCenter Portal Administration Console
Durante la consutrucción de las Page Template normalmente se suele dar el siguiente fragmento de código para el acceso a la página de la consola de Administración (cogido de la template por defecto):
Enlace a la página de administración
Si comprobamos la propiedad rendered esta indica que solo puedes ver dicho enlace si:
  • #{attrs.showAdmin}: Si verificas en los atributos de la Page Template esta configurado para que su valor sea #{securityContext.authenticated} lo que significa que cualquier usuario autenticado verá el enlace.
  • #{attrs.isAdminPage}: Por defecto está a falso. La admin.jspx sobreescribe este valor con un <f:attribute name="isAdminPage" value="true"/> al incluir la Page Template para cambiar dicho valor.
Por lo tanto cualquier usuario autenticado puede ver el enlace a la Administration Console.

Ahora se quiere cambiar la lógica para que sólo usuarios administradores accedan a la consola de administración.
En muchas ocasiones me he encontrado el siguiente código:

Atributo de plantilla que securiza visualmente el enlace
Como podéis comprobar, ahora se ha restringido el acceso a la consola de administracion usando #{WCSecurityContext.userInAppRole['Administrator']}. Esto significa que sólo los usuarios con el rol de administración podrán ver el enlace. Esto no significa que otros usuarios puedan acceder a la consola de administración. Con que escriban en la URL http://[host]:[puerto]/<context-root>/admin  accederan sin problemas a la consola de administración.

Las propiedades rendered son útiles para ocultar cosas visualmente. Sin embargo, a veces requiere más trabajo securizar los componentes para hacerlos totalmente seguros.

En el caso de la página de administración, hay que aplicar la seguridad a la pageDefinition de la misma. Para securizar esta página (que se encuentra en la librería principal del framework de WebCenter Portal) hay que ir al fichero jazn-data.xml y seguir los siguientes pasos:
  1. Ir a la pestaña Resource Grants y seleccionar Web Page como Resource Type.
    jazn-data -> Web Page
  2. Como la página de administración se encuentra en una de las librerías. Seleccionar Show web pages imported from ADF Libraries.
    jazn-data -> Show web pages imported from ADF Libraries
  3.  Seleccionando la admin page. Se puede observar que la Admin page puede ser accedida por cualquier usuario autenticado. Por ejemplo, quitamos dicho rol y ponemos que sólo los administradores podrán verla.
    Cambio de los permisos a rol administrador
  4. Ejecutar la aplicación y comprobar que al intentar acceder como usuario no administrador el acceso será denegado.
    Usuario autenticado no puede ver la página de administración
Referencias: Thread del foro de OTN de WebCenter Portal

Enlace a la versión en inglés (Link to english version)

No hay comentarios:

Publicar un comentario