Autorizacion drools

1,411 views

Published on

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,411
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Autorizacion 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¨  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. 5. Mecanismos de Autorización Autorización   Roles Permisos Tabla de Grupos Tabla de Reglas Roles LDAP ACLs 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, 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¨  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
  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 ¤  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étodoEntidades @Restrict ("#{s:hasPermission(...)}")•  CRUD @PostLoad, @PrePersist, @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¨  Regla ¨  hasPermission OLAP-2011 All Rights Reserved
  23. 23. Ejemplo 2: Restricción por Usuario¨  Regla ¨  hasPermission OLAP-2011 All Rights Reserved
  24. 24. Ejemplo 3: Restricción por Contexto¨  Regla ¨  hasPermission 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 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
  30. 30. ¿Preguntas?OLAP-2011 All Rights Reserved

×