Joven hacker sonriendo

Definir Roles de Seguridad en Tomcat

Necesidad

Definir roles de seguridad en Tomcat.

Contexto

A continuación se describen las circunstancias bajo las cuales la siguiente solución tiene sentido:

  1. Se dispone de un servidor de aplicaciones Tomcat 5.5. o superior

Solución

Apache Tomcat (o, sencillamente, Tomcat) es un contenedor de servlets que se puede usar para compilar y ejecutar aplicaciones web realizadas en Java. Es capaz de implementar y dar soporte tanto a servlets como a páginas JSP (Java Server Pages) o Java Sockets. Además, Tomcat es compatible con otras tecnologías como Java Expression Language y Java WebSocket, del ecosistema Java.

Tomcat puede funcionar de manera autónoma como motor de aplicaciones web desarrolladas con Java, aunque habitualmente se usa en combinación con otros productos como el servidor web Apache, para dar un mayor soporte a tecnologías y aumentar sus características. [1]

Cuando se está diseñando una aplicación web, o sistema en general, se debe conocer los tipos de usuarios que tendrán acceso al mismo, y una vez determinados quienes serán los usuarios, hay que definir cuál será el rol que tendrán en la aplicación.

Según lo anterior, es posible decir que un usuario, en general, es una persona, un componente de software o incluso un servicio.

Por otra parte, un rol es un nivel de autorización definido para la aplicación el cual será asignado a uno o varios usuarios para que interactúen con la aplicación. En otras palabras, define qué aplicaciones y qué partes de cada aplicación pueden tener acceso los usuarios y qué pueden hacer.

Por ejemplo, una aplicación que administra los empleados de una organización. En ésta, los empleados podrían tener acceso a toda su información personal, pero no podrían ver la información de otros empleados, ni editar la de ellos. Pero los administradores, tendrían acceso a la información de todos los empleados, así como permisos para editarla.

En este ejemplo se podrían definir, al menos, dos roles: empleado y administrador; donde sólo los usuarios del rol administrador puede ver y editar la información de todos los empleados.

Para definir los roles de seguridad en tomcat se siguen los siguientes pasos:

  1. Mediante repositorio interno de usuarios en el servidor de aplicaciones.

  2. En el archivo conf\tomcat-users.xml añadir los roles y usuarios requeridos, estos últimos asociados a su respectiva contraseña y rol.

    tomcat-users.xml
    1
    2
    3
    4
    5
    6
    7
    <?xml version='1.0' encoding='utf-8'?>
      <tomcat-users>
        <role rolename="rol1"/>
        <role rolename="rol2"/>
        <user username="usuario1" password="clave1" roles="rol1"/>
        <user username="usuario2" password="clave2" roles="rol1,rol2"/>
      </tomcat-users>
    
  3. El servidor de aplicaciones, tiene habilitado por defecto este tipo de repositorio de usuarios en el archivo conf/server.xml.

    1
    2
    <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
       resourceName="UserDatabase"/>
    
  4. Para otro tipo de repositorios (base de datos, directorios, JAAS o memoria), remitirse a [2]




Haz un comentario