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)
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):
Si comprobamos la propiedad rendered esta indica que solo puedes ver dicho enlace si:
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:
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:
Enlace a la versión en inglés (Link to english version)
(Link to english version)
WebCenter Portal Administration Console |
Enlace a la página de administración |
- #{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.
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 |
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:
- Ir a la pestaña Resource Grants y seleccionar Web Page como Resource Type.
jazn-data -> Web Page - 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 - 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 - 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
Enlace a la versión en inglés (Link to english version)
Comments
Post a Comment