Avances tecnológicos del siglo XXI y ejemplos de estos
Autorizacion drools
1. OLAP-2011 All Rights Reserved
AUTORIZACIÓN BASADA
EN REGLAS CON DROOLS
Por: Óscar López, M.Sc. Twitter: @oscar_lopez
2. Agenda
¨ Conceptos de Seguridad
¨ Reglas de Inferencia
¨ Drools + Seam =
Autorización Basada en Reglas
¨ Mucho Más que Autorización
¨ Bibliografía
¨ Preguntas
OLAP-2011 All Rights Reserved
4. Definiciones
¨ ACL: Conjunto de permisos sobre un objeto
¨ Autenticación: Afirmación de identidad; permite o niega el
acceso a un sistema de información
¨ Autorización: Mecanismo y política de especificación de
permisos
¨ Permiso: Derecho de acceso a un recurso, operaciones
sobre éste. "Fino”
¨ Principal: nombre de usuario, login
¨ Regla: Función de autorización; recibe condiciones y retorna
acciones
¨ Rol: Perfil de usuario en el sistema; agrupación de permisos.
"Grueso"
OLAP-2011 All Rights Reserved
5. Mecanismos de Autorización
Autorización
Roles Permisos
Tabla de Grupos Tabla de Reglas
Roles LDAP ACLs
OLAP-2011 All Rights Reserved
6. ¿Cuándo Usar Autorización por Reglas?
¨ Se desea separar la lógica de autorización de los objetos sobre los
que aplica, centralizando las reglas de acceso y facilitando su
mantenibilidad Las condiciones de autorización son muy
dinámicas y podrían estar cambiando constantemente en el tiempo
¨ Se desea evitar una explosión de roles en el sistema La adición
de una restricción de acceso implica tener que crear un nuevo rol
sólo para ella y sería más sencillo decidir si se permite o no el
acceso en función del contexto
¨ Se desea evitar tener que agregarle roles adicionales a un usuario
Existen restricciones de acceso globales y no corresponden
claramente a un rol
¨ Se desea evitar tener lógica compleja de autorización en EL, que
puede impactar negativamente el desempeño de la aplicación
Existe código de autorización complejo (más de 3 condiciones) y
depende de condiciones adicionales del contexto
OLAP-2011 All Rights Reserved
8. Reglas de Inferencia
¨ Campo de estudio de la inteligencia artificial: Sistemas
Expertos
¨ Una regla es una estructura lógica de primer orden que
razona sobre una representación del conocimiento
¨ Tiene la forma: condición-acción (premisas
conclusiones)
¨ El motor hace match de datos contra reglas, infiere
conclusiones que resultan en acciones.
¨ Forward-chaining o Backward-chaining
¨ Una buena implementación de un motor de inferencia
generalmente usa el algoritmo Rete
OLAP-2011 All Rights Reserved
13. Drools + Seam =
Autorización Basada en Reglas
OLAP-2011 All Rights Reserved
14. Drools
¨ Motor de inferencia basado en reglas, soporta forward
y backward-chaining, procesamiento de eventos
¨ Implementa el algoritmo ReteOO, optimizado para
operar sobre objetos
¨ Plataforma de integración de lógica del negocio
¨ Anteriormente conocido como JBoss Rules
¨ Drools Expert
¨ Versión estable más reciente: 5.2
¨ Licencia: Apache v2.0
OLAP-2011 All Rights Reserved
15. Seam Framework, MVEL
¨ Seam
¤ Framework web JEE5/6 que combina tecnologías AJAX, JSF,
EJB3
¤ Biyección, Contextos, Manejador de Persistencia,
Componentes
¤ Versiones estables más recientes: 2.2.2.Final y 3.0.0.Final
¤ Licencias: LGPL (2.x) y Apache v2.0 (3.x)
¨ MVEL
¤ Lenguaje de Expresiones embebible en Java
¤ Estático o dinámico, interpretado o compilado, ¡muy rápido!
¤ Licencia: Apache v2.0
¤ Versión estable más reciente: 2.0.19 Final
OLAP-2011 All Rights Reserved
28. Bibliografía
1. Drools JBoss Rules 5.0 Developer's Guide.
Packt Publishing, 2009
2. Seam in Action. Manning, 2009
3. Seam Framework: Experience the
Evolution of Java EE, 2nd Edition. Prentice
Hall, 2009
4. Seam Security (http://docs.jboss.org/
seam/latest/reference/en-US/html/
security.html - consultado en junio de
2011)
OLAP-2011 All Rights Reserved
29. Bibliografía
5. Drools Documentation (http://
www.jboss.org/drools/documentation -
consultado en junio de 2011)
6. Charles Forgy. Rete: A fast algorithm
for the many pattern/many object
pattern match problem. Artificial
Intelligence, 19(1):17–37, 1982.
OLAP-2011 All Rights Reserved