Autorizacion drools

  • 1,028 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,028
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. OLAP-2011 All Rights ReservedAUTORIZACIÓN BASADAEN REGLAS CON DROOLSPor: Ó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
  • 3. Conceptos de Seguridad 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
  • 7. Reglas de Inferencia 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
  • 9. Motor de Inferencia OLAP-2011 All Rights Reserved
  • 10. Forward-Chaining OLAP-2011 All Rights Reserved
  • 11. Algoritmo Rete OLAP-2011 All Rights Reserved
  • 12. Algoritmo Rete (cont.) 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
  • 16. Autorización en Seam OLAP-2011 All Rights Reserved
  • 17. Sintaxis de Permisos #{s:hasPermission(‘target’, ‘action’)}   objetivo acción OLAP-2011 All Rights Reserved
  • 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. Sintaxis de Reglas OLAP-2011 All Rights Reserved
  • 20. Herramientas OLAP-2011 All Rights Reserved
  • 21. Caso de Estudio: Reservas de Hoteles OLAP-2011 All Rights Reserved
  • 22. Ejemplo 1: Restricción por Rol¨  Regla ¨  hasPermission OLAP-2011 All Rights Reserved
  • 23. Ejemplo 2: Restricción por Usuario¨  Regla ¨  hasPermission OLAP-2011 All Rights Reserved
  • 24. Ejemplo 3: Restricción por Contexto¨  Regla ¨  hasPermission OLAP-2011 All Rights Reserved
  • 25. Mucho Más que Autorización OLAP-2011 All Rights Reserved
  • 26. La Punta del IcebergOLAP-2011 All Rights Reserved
  • 27. Plataforma de Integración de Lógica del Negocio OLAP-2011 All Rights Reserved
  • 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. 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. ¿Preguntas?OLAP-2011 All Rights Reserved