Publica tu how-to

Dinos como hacer lo que sabes hacer, mándanos un email a wdonet@gmail.com y lo publicamos (dos días máximo) o si te interesa unirte al equipo de redactores, también háznoslo saber por correo.

JBoss AS - Servicio de Seguridad

JBoss usa JAAS (Java Autthentication and Authorization Service) para proveer modulos de autenticación, puedes usar los que provee o implementar los tuyos propios.

La información de dominios de seguridad se encuentra en conf/login-config.xml, por lo tanto hay que (num. 1) indicar una política para nuestra aplicacion: <application-policy> con un modulo de autentication y sus opciones; en este caso para la aplicación jmx-console, se está usando UsersRolesLoginModule y obtiene los usuarios y roles desde archivos properties dentro de la carpeta props.

Los usuarios en los archivos .properties se configuran en lineas separadas cada uno como usuario=password y los roles como usuario=role


<application-policy name="jmx-console">
<authentication>
<login-module code="org.jboss.security.auth.spi.UsersRolesLoginModule"
flag="required">
<module-option name="usersProperties">props/jmx-console-users.properties</module-option>
<module-option name="rolesProperties">props/jmx-console-roles.properties</module-option>
</login-module>
</authentication>
</application-policy>


(num. 2) Ahora tenemos que enlazar el dominio de seguridad a nuestra aplicación web, tenemos que agregar un <security-domain> al archivo /WEB-INF/jboss-web.xml de nuestra aplicación web. Para nuestro ejemplo sería algo así:

<jboss-web>
<security-domain>java:/jaas/jmx-console</security-domain>
</jboss-web>

Hasta ahora solo hemos definido una política y enlazamos nuestra aplicación al contenedor de políticas pero (num. 3) no le hemos dicho a nuestra aplicación qué politica usar y detalles como url's a proteger o quién está habilitado para acceder. Esto se hace habilitando un security constraint en /WEB_INF/web.xml de nuestra aplicación; para nuestro ejemplo, se requiere el acceso a usuarios válidos con password (props/jmx-console-users.properties) que estén dentro del grupo o rol JBossAdmin (props/jmx-console-roles.properties):

<security-constraint>
<web-resource-collection>
<web-resource-name>HtmlAdaptor</web-resource-name>
<description>
An example security config that only allows users with the
role JBossAdmin to access the HTML JMX console web application
</description>
<url-pattern>/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>JBossAdmin</role-name>
</auth-constraint>
</security-constraint>


Cada movimiento que hagamos en el archivo web.xml obliga a JBoss AS a hacer un re-deploy. Si todo marcha bien, veremos una petición de usuario y contraseña, la próxima vez que entremos a nuestra aplicación web.

Referencia: Getting Started de JBoss AS o en PDF

Otros recursos:
Tutorial de autenticación con JAAS (inglés)
Libro de JAAS para descargar en PDF (inglés

No hay comentarios:

Publicar un comentario

Que opinas sobre esta publicación?