Sei sulla pagina 1di 18

JAAS: Seguridad completa en Java

Oscar Rojas SoftClear Abril, 2007

Agenda

Conceptos de seguridad Qu es JAAS y con que se come? Seguridad en J2EE Integracin de JAAS en Aplicaciones Web

Conceptos de seguridad

Autenticacin:

Soy yo quin digo ser? Cmo lo verifico?

Conceptos de seguridad

Autorizacin:

Qu puedo hacer? A qu puedo acceder? Privilegios Limitaciones

JAAS

Java Authentication and Authorization Service

API de Java que provee un framework para mecanismos de autenticacin y autenticacin para aplicaciones en Java Es la implementacin en Java del estndar PAM(Pluggable Authentication Module)

JAAS

Independencia

JAAS

Keywords:

Subject: clase que representa a un ente autenticable dentro de la aplicacin es quien va a invocar los metodos de autenticacin. Principal: clase que representa los atributos que poseen cada subject recuperados una vez que se efecta el ingreso a la aplicacin. En base a los Principals se determinan los privilegios dentro de esta. LoginContext: clase que se crea y utiliza para invocar la autenticacin LoginModule: interfaz que que debe implementarse para definir los mecanismos de autenticacin en la aplicacin CallBackHandler: interfaz que se debe implementar para interactuar con los mecanismos de seguridad para que esta pueda recuperar los datos necesarios para la autenticacin

JAAS

Archivo de configuracin:
SimpleLoginModule required;

SimpleLogin {

};

En l se definen los mdulos de autenticacin a utilizar, y la forma de utilizarlos. Estas formas son:

required requisite optional sufficient

JAAS

LoginModule debe implementar:


initialize login commit abort logout

JAAS

Autorizacin:

Se logra mediante clases que implementan la interfaz PriviledAction


public class SampleAction implements PrivilegedAction { public Object run() { . . . //Conjunto de acciones restringidas return null; } }

Seguridad en J2EE

Usuarios y Roles agrupados bajo polticas de seguridad(Realms) Restriccin de acceso de manera declarativa y programtica.

Seguridad en J2EE

Realms comunes:

JDBCRealm DataSourceRealm JNDIRealm MemoryRealm JAASRealm

Seguridad en J2EE

Protegiendo los recursos

Acceso restringido a los recursos de la aplicacin de acuerdo a roles definidos. Configuracin de restricciones de seguridad(web.xml)

Seguridad en J2EE

Configuracin de Realms:

Se aaden las entradas dentro del contexto la instancia del servidor J2EE(server.xml)
<RealmclassName="org.apache.catalina.realm.JDBCRealm" debug="99" driverName="org.gjt.mm.mysql.Driver" connectionURL="jdbc:mysql://localhost/authority?user=dbuser& amp;password=dbpass" userTable="users"userNameCol="user_name" userCredCol="user_pass" userRoleTable="user_roles"roleNameCol="role_name"/>

Seguridad en J2EE

Aadiendo restricciones de seguridad:


<security-constraint> <display-name>Entrada restriccin de Segurida</displayname> <web-resource-collection> <web-resource-name>Recursos protegidos</web-resource-name> <url-pattern>/protegidos/usuarios/*</url-pattern> <http-method>GET</http-method> <http-method>POST</http-method> </web-resource-collection> <auth-constraint> <role-name>user</role-name> </auth-constraint> </security-constraint>

Seguridad J2EE

Tipos de autenticacin en J2EE:

Especificado en el descriptor de despliegue. Pueden ser:


BASIC: Autenticacin bsica de usuario/contrasea DIGEST: Similar a la anterior. Con la diferencia que la contrasea es cifrada. No se garantiza que todos los browsers soporten esta funcionalidad. FORM: Basada en formulario web.

Integracin de JAAS en Aplicaciones Web

Configuracin de JAASRealm Mapeo de Usuarios y Roles Uso en contexto declarativo y programtico


<Realm className="org.apache.catalina.realm.JAASRealm" debug="100" appName="JaasTestTomcat" userClassNames="web.security.principals.UserPrincipal" roleClassNames="web.security.principals.RolePrincipal" />

Patrocinado por:

Potrebbero piacerti anche