Autorización Basada en Reglas con Drools

1,821 views

Published on

Esta conferencia fue dictada originalmente durante la 4ta Campus Party en Bogotá (2011). Se introduce Drools como motor de inferencia, detallando su funcionamiento y utilidad para el desarrollo de aplicaciones web empresariales bajo la plataforma Seam, haciendo énfasis en el uso de reglas como una herramienta de seguridad que facilita la implementación de políticas de autorización y control de acceso.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,821
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
36
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Autorización Basada en Reglas con Drools

  1. 1. OLAP-2011 All Rights ReservedAUTORIZACIÓN BASADAEN REGLAS CON DROOLSPor: Óscar López, M.Sc. Twitter: @oscar_lopez
  2. 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
  3. 3. Conceptos de Seguridad OLAP-2011 All Rights Reserved
  4. 4. Definiciones¨  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¨  Credenciales: Combinación de usuario y contraseña de un usuario¨  Permiso: Derecho de acceso a un recurso, y a las operaciones sobre éste. "Fino”¨  Principal: nombre de usuario o login¨  Regla: Función de autorización, recibe condiciones y ejecuta acciones que conceden o revocan un permiso¨  Rol: Perfil de usuario en el sistema, agrupación de permisos. "Grueso" OLAP-2011 All Rights Reserved
  5. 5. Mecanismos de Autorización Autorización   Roles PermisosTabla de Grupos Tabla de Reglas Roles LDAP Permisos OLAP-2011 All Rights Reserved
  6. 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 (rendered), 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
  7. 7. Reglas de Inferencia OLAP-2011 All Rights Reserved
  8. 8. Reglas de Inferencia¨  Campo de estudio de la inteligencia artificial: Sistemas Expertos, Sistema de Reglas de Producción¨  Lógica proposicional, lógica de predicados de primer orden¨  Una regla es una estructura lógica que razona sobre una representación del conocimiento¨  Tiene la forma: condición-acción (premisas conclusiones)¨  Un motor de inferencia hace match de datos contra reglas, y deduce conclusiones que resultan en acciones¨  Forward-chaining o Backward-chaining¨  Una buena implementación de un motor de inferencia generalmente usa alguna variante del algoritmo Rete OLAP-2011 All Rights Reserved
  9. 9. Motor de Inferencia OLAP-2011 All Rights Reserved
  10. 10. Forward-Chaining OLAP-2011 All Rights Reserved
  11. 11. Algoritmo Rete OLAP-2011 All Rights Reserved
  12. 12. Algoritmo Rete (cont.) OLAP-2011 All Rights Reserved
  13. 13. Drools + Seam =Autorización Basada en Reglas OLAP-2011 All Rights Reserved
  14. 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. 15. Seam Framework, MVEL¨  Seam ¤  Framework web JEE5/6 que combina tecnologías AJAX, JSF, EJB3, JPA ¤  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
  16. 16. Autorización en Seam OLAP-2011 All Rights Reserved
  17. 17. Sintaxis de Permisos #{s:hasPermission(‘target’, ‘action’)}   objetivo acción OLAP-2011 All Rights Reserved
  18. 18. ¿Qué Puedo Proteger?Páginas <restrict> #{s:hasPermission(...)} </restrict>Componentes GUI rendered= "#{s:hasPermission(...)}"Componentes del Negocio @Restrict ("#{s:hasPermission(...)}")•  Clase•  MétodosEntidades @Restrict ("#{s:hasPermission(...)}")•  Clase @PostLoad, @PrePersist,•  Métodos CRUD @PreUpdate, @PreRemove OLAP-2011 All Rights Reserved
  19. 19. Sintaxis de Reglas OLAP-2011 All Rights Reserved
  20. 20. Herramientas OLAP-2011 All Rights Reserved
  21. 21. Caso de Estudio: Reservas de Hoteles OLAP-2011 All Rights Reserved
  22. 22. Ejemplo 1: Restricción por Rol¨  Permiso ¨  Regla OLAP-2011 All Rights Reserved
  23. 23. Ejemplo 2: Restricción por Usuario¨  Permiso ¨  Regla OLAP-2011 All Rights Reserved
  24. 24. Ejemplo 3: Restricción por Contexto¨  Permiso ¨  Regla OLAP-2011 All Rights Reserved
  25. 25. Mucho Más que Autorización OLAP-2011 All Rights Reserved
  26. 26. La Punta del IcebergOLAP-2011 All Rights Reserved
  27. 27. Plataforma de Integración de Lógica del Negocio OLAP-2011 All Rights Reserved
  28. 28. Bibliografía 1.  Drools JBoss Rules 5.0 Developers 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. 29. Bibliografía (cont.) 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. 7.  Código de ejemplo: http://bit.ly/drools-authorization OLAP-2011 All Rights Reserved
  30. 30. ¿Preguntas?OLAP-2011 All Rights Reserved

×