SlideShare a Scribd company logo
1 of 30
OLAP-2011 All Rights Reserved




AUTORIZACIÓN BASADA
EN REGLAS CON DROOLS
Por: Óscar López, M.Sc.        Twitter: @oscar_lopez
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
Conceptos de Seguridad




        OLAP-2011 All Rights Reserved
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
Mecanismos de Autorización

                             Autorización
                                   


            Roles                                      Permisos



 Tabla de           Grupos                  Tabla de              Reglas
   Roles             LDAP                     ACLs



                       OLAP-2011 All Rights Reserved
¿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
Reglas de Inferencia




         OLAP-2011 All Rights Reserved
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
Motor de Inferencia




            OLAP-2011 All Rights Reserved
Forward-Chaining




            OLAP-2011 All Rights Reserved
Algoritmo Rete




            OLAP-2011 All Rights Reserved
Algoritmo Rete (cont.)




             OLAP-2011 All Rights Reserved
Drools + Seam =
Autorización Basada en Reglas




            OLAP-2011 All Rights Reserved
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
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
Autorización en Seam




            OLAP-2011 All Rights Reserved
Sintaxis de Permisos



    #{s:hasPermission(‘target’, ‘action’)}
                            




                   objetivo                      acción




                 OLAP-2011 All Rights Reserved
¿Qué Puedo Proteger?
Páginas                           <restrict>
                                    #{s:hasPermission(...)}
                                  </restrict>

Componentes GUI                   rendered=
                                  "#{s:hasPermission(...)}"



Componentes del Negocio           @Restrict
                                  ("#{s:hasPermission(...)}")
•  Clase
•  Método
Entidades                         @Restrict
                                  ("#{s:hasPermission(...)}")
•  CRUD                           @PostLoad, @PrePersist,
                                  @PreUpdate, @PreRemove
                     OLAP-2011 All Rights Reserved
Sintaxis de Reglas




             OLAP-2011 All Rights Reserved
Herramientas




               OLAP-2011 All Rights Reserved
Caso de Estudio: Reservas de Hoteles


        OLAP-2011 All Rights Reserved
Ejemplo 1: Restricción por Rol
¨    Regla                  ¨    hasPermission




              OLAP-2011 All Rights Reserved
Ejemplo 2: Restricción por Usuario
¨    Regla                  ¨    hasPermission




              OLAP-2011 All Rights Reserved
Ejemplo 3: Restricción por Contexto
¨    Regla                  ¨    hasPermission




              OLAP-2011 All Rights Reserved
Mucho Más que Autorización




         OLAP-2011 All Rights Reserved
La Punta del Iceberg


OLAP-2011 All Rights Reserved
Plataforma de Integración de Lógica del Negocio




                  OLAP-2011 All Rights Reserved
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
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
¿Preguntas?




OLAP-2011 All Rights Reserved

More Related Content

Similar to Autorizacion drools

J2 Ee Para Seres Humanos Slides
J2 Ee Para Seres Humanos SlidesJ2 Ee Para Seres Humanos Slides
J2 Ee Para Seres Humanos Slidesmundojava
 
Conociendo las tecnologías de TypeSafe (Primer meetup Scala Perú Nov 2015)
Conociendo las tecnologías de TypeSafe (Primer meetup Scala Perú Nov 2015)Conociendo las tecnologías de TypeSafe (Primer meetup Scala Perú Nov 2015)
Conociendo las tecnologías de TypeSafe (Primer meetup Scala Perú Nov 2015)Marco Antonio Ordoñez Valverde
 
Programacion web java
Programacion web javaProgramacion web java
Programacion web javaCésar Ocampo
 
JConf México 2020 - Micronaut + GraalVM = <3
JConf México 2020 - Micronaut + GraalVM = <3JConf México 2020 - Micronaut + GraalVM = <3
JConf México 2020 - Micronaut + GraalVM = <3Iván López Martín
 
JConf Perú 2020 - Micronaut + GraalVM = <3
JConf Perú 2020 - Micronaut + GraalVM = <3JConf Perú 2020 - Micronaut + GraalVM = <3
JConf Perú 2020 - Micronaut + GraalVM = <3Iván López Martín
 
[Flisol2011] Seguridad en el Desarrollo de Aplicaciones Web PHP
[Flisol2011] Seguridad en el Desarrollo de Aplicaciones Web PHP[Flisol2011] Seguridad en el Desarrollo de Aplicaciones Web PHP
[Flisol2011] Seguridad en el Desarrollo de Aplicaciones Web PHP7th_Sign
 
Seguridad en el Desarrollo de Aplicaciones Web PHP
Seguridad en el Desarrollo de Aplicaciones Web PHPSeguridad en el Desarrollo de Aplicaciones Web PHP
Seguridad en el Desarrollo de Aplicaciones Web PHP7th_Sign
 
Argentesting 2017 - Performance testing 101 con jmeter
Argentesting 2017 - Performance testing 101 con jmeterArgentesting 2017 - Performance testing 101 con jmeter
Argentesting 2017 - Performance testing 101 con jmeterArgentesting
 
Web Performance para Magento
Web Performance para MagentoWeb Performance para Magento
Web Performance para MagentoJordi Rosell
 
Gestion de permisos especiales y accesos en ibm i v2
Gestion de permisos especiales y accesos en ibm i v2Gestion de permisos especiales y accesos en ibm i v2
Gestion de permisos especiales y accesos en ibm i v2HelpSystems
 
Introducción a Tomcat
Introducción a TomcatIntroducción a Tomcat
Introducción a TomcatIker Canarias
 
Release note 4.5
Release note 4.5Release note 4.5
Release note 4.5Pablo
 
Introducción a Laravel 5 - Un Framework para Artesanos Web
Introducción a Laravel 5 - Un Framework para Artesanos WebIntroducción a Laravel 5 - Un Framework para Artesanos Web
Introducción a Laravel 5 - Un Framework para Artesanos WebFacundo E. Goñi Perez
 
Unidad 6 Protección y seguridad
Unidad 6 Protección y seguridadUnidad 6 Protección y seguridad
Unidad 6 Protección y seguridadJ M
 
Exposicion Akelos
Exposicion AkelosExposicion Akelos
Exposicion Akelosdokeosla
 

Similar to Autorizacion drools (20)

J2 Ee Para Seres Humanos Slides
J2 Ee Para Seres Humanos SlidesJ2 Ee Para Seres Humanos Slides
J2 Ee Para Seres Humanos Slides
 
Conociendo las tecnologías de TypeSafe (Primer meetup Scala Perú Nov 2015)
Conociendo las tecnologías de TypeSafe (Primer meetup Scala Perú Nov 2015)Conociendo las tecnologías de TypeSafe (Primer meetup Scala Perú Nov 2015)
Conociendo las tecnologías de TypeSafe (Primer meetup Scala Perú Nov 2015)
 
Ch14
Ch14Ch14
Ch14
 
Programacion web java
Programacion web javaProgramacion web java
Programacion web java
 
JConf México 2020 - Micronaut + GraalVM = <3
JConf México 2020 - Micronaut + GraalVM = <3JConf México 2020 - Micronaut + GraalVM = <3
JConf México 2020 - Micronaut + GraalVM = <3
 
JConf Perú 2020 - Micronaut + GraalVM = <3
JConf Perú 2020 - Micronaut + GraalVM = <3JConf Perú 2020 - Micronaut + GraalVM = <3
JConf Perú 2020 - Micronaut + GraalVM = <3
 
[Flisol2011] Seguridad en el Desarrollo de Aplicaciones Web PHP
[Flisol2011] Seguridad en el Desarrollo de Aplicaciones Web PHP[Flisol2011] Seguridad en el Desarrollo de Aplicaciones Web PHP
[Flisol2011] Seguridad en el Desarrollo de Aplicaciones Web PHP
 
Seguridad en el Desarrollo de Aplicaciones Web PHP
Seguridad en el Desarrollo de Aplicaciones Web PHPSeguridad en el Desarrollo de Aplicaciones Web PHP
Seguridad en el Desarrollo de Aplicaciones Web PHP
 
Argentesting 2017 - Performance testing 101 con jmeter
Argentesting 2017 - Performance testing 101 con jmeterArgentesting 2017 - Performance testing 101 con jmeter
Argentesting 2017 - Performance testing 101 con jmeter
 
Web Performance para Magento
Web Performance para MagentoWeb Performance para Magento
Web Performance para Magento
 
Laravel 5.1
Laravel 5.1Laravel 5.1
Laravel 5.1
 
Gestion de permisos especiales y accesos en ibm i v2
Gestion de permisos especiales y accesos en ibm i v2Gestion de permisos especiales y accesos en ibm i v2
Gestion de permisos especiales y accesos en ibm i v2
 
Introducción a Tomcat
Introducción a TomcatIntroducción a Tomcat
Introducción a Tomcat
 
Release note 4.5
Release note 4.5Release note 4.5
Release note 4.5
 
Oracle
OracleOracle
Oracle
 
Introducción a Laravel 5 - Un Framework para Artesanos Web
Introducción a Laravel 5 - Un Framework para Artesanos WebIntroducción a Laravel 5 - Un Framework para Artesanos Web
Introducción a Laravel 5 - Un Framework para Artesanos Web
 
Unidad 6 Protección y seguridad
Unidad 6 Protección y seguridadUnidad 6 Protección y seguridad
Unidad 6 Protección y seguridad
 
Comandos ios
Comandos iosComandos ios
Comandos ios
 
Exposicion Akelos
Exposicion AkelosExposicion Akelos
Exposicion Akelos
 
Presentation OWASP Day @ FIUBA.AR
Presentation OWASP Day @ FIUBA.ARPresentation OWASP Day @ FIUBA.AR
Presentation OWASP Day @ FIUBA.AR
 

More from campus party

¿Qué es SCADA y cómo me afecta su (in)seguridad?
¿Qué es SCADA y cómo me afecta su (in)seguridad? ¿Qué es SCADA y cómo me afecta su (in)seguridad?
¿Qué es SCADA y cómo me afecta su (in)seguridad? campus party
 
Producción del largometraje pequeñas voces
Producción del largometraje pequeñas vocesProducción del largometraje pequeñas voces
Producción del largometraje pequeñas vocescampus party
 
Conferencia: Aplicaciones y el reto del desarrollo móvil
Conferencia: Aplicaciones y el reto del desarrollo móvilConferencia: Aplicaciones y el reto del desarrollo móvil
Conferencia: Aplicaciones y el reto del desarrollo móvilcampus party
 
Como sería un viaje a la velocidad de la luz - Miguel Ángel Contreras
Como sería un viaje a la velocidad de la luz - Miguel Ángel ContrerasComo sería un viaje a la velocidad de la luz - Miguel Ángel Contreras
Como sería un viaje a la velocidad de la luz - Miguel Ángel Contrerascampus party
 
Como sería un viaje a la velocidad de la luz - Miguel Ángel Contreras
Como sería un viaje a la velocidad de la luz - Miguel Ángel ContrerasComo sería un viaje a la velocidad de la luz - Miguel Ángel Contreras
Como sería un viaje a la velocidad de la luz - Miguel Ángel Contrerascampus party
 
X taller bluevialiminal
X taller bluevialiminalX taller bluevialiminal
X taller bluevialiminalcampus party
 
X liminal buevia 2 (dllo.)-taller
X liminal buevia 2 (dllo.)-tallerX liminal buevia 2 (dllo.)-taller
X liminal buevia 2 (dllo.)-tallercampus party
 
X elalgoritmodelamemoria maria juliana soto (social media) (1) 1
X elalgoritmodelamemoria maria juliana soto (social media) (1) 1X elalgoritmodelamemoria maria juliana soto (social media) (1) 1
X elalgoritmodelamemoria maria juliana soto (social media) (1) 1campus party
 
Theremin Alfredo Vargas
Theremin Alfredo Vargas Theremin Alfredo Vargas
Theremin Alfredo Vargas campus party
 
Sonido y cine Ricardo Escallon
Sonido y cine Ricardo Escallon Sonido y cine Ricardo Escallon
Sonido y cine Ricardo Escallon campus party
 
Photoshop para fotógrafos. Del cuarto oscuro al cuarto digital - Andrés Bautista
Photoshop para fotógrafos. Del cuarto oscuro al cuarto digital - Andrés BautistaPhotoshop para fotógrafos. Del cuarto oscuro al cuarto digital - Andrés Bautista
Photoshop para fotógrafos. Del cuarto oscuro al cuarto digital - Andrés Bautistacampus party
 
Photoshop para fotógrafos. Del cuarto oscuro al cuarto digital - Andrés Fonseca
Photoshop para fotógrafos. Del cuarto oscuro al cuarto digital - Andrés FonsecaPhotoshop para fotógrafos. Del cuarto oscuro al cuarto digital - Andrés Fonseca
Photoshop para fotógrafos. Del cuarto oscuro al cuarto digital - Andrés Fonsecacampus party
 
Aseguramiento de Vulnerabilidades Web con tecnologías OWASP
Aseguramiento de Vulnerabilidades Web con tecnologías OWASPAseguramiento de Vulnerabilidades Web con tecnologías OWASP
Aseguramiento de Vulnerabilidades Web con tecnologías OWASPcampus party
 
Mundos virtuales inmersivos y social shopping
Mundos virtuales inmersivos y social shopping Mundos virtuales inmersivos y social shopping
Mundos virtuales inmersivos y social shopping campus party
 
Creación transmediática y comunidades en práctica
Creación transmediática y comunidades en prácticaCreación transmediática y comunidades en práctica
Creación transmediática y comunidades en prácticacampus party
 
Implementación de Cloud Computing con Software Libre y medidas de seguridad p...
Implementación de Cloud Computing con Software Libre y medidas de seguridad p...Implementación de Cloud Computing con Software Libre y medidas de seguridad p...
Implementación de Cloud Computing con Software Libre y medidas de seguridad p...campus party
 

More from campus party (20)

Titulo
Titulo Titulo
Titulo
 
¿Qué es SCADA y cómo me afecta su (in)seguridad?
¿Qué es SCADA y cómo me afecta su (in)seguridad? ¿Qué es SCADA y cómo me afecta su (in)seguridad?
¿Qué es SCADA y cómo me afecta su (in)seguridad?
 
Producción del largometraje pequeñas voces
Producción del largometraje pequeñas vocesProducción del largometraje pequeñas voces
Producción del largometraje pequeñas voces
 
Conferencia: Aplicaciones y el reto del desarrollo móvil
Conferencia: Aplicaciones y el reto del desarrollo móvilConferencia: Aplicaciones y el reto del desarrollo móvil
Conferencia: Aplicaciones y el reto del desarrollo móvil
 
Liminal Bluevia 1
Liminal Bluevia 1Liminal Bluevia 1
Liminal Bluevia 1
 
Como sería un viaje a la velocidad de la luz - Miguel Ángel Contreras
Como sería un viaje a la velocidad de la luz - Miguel Ángel ContrerasComo sería un viaje a la velocidad de la luz - Miguel Ángel Contreras
Como sería un viaje a la velocidad de la luz - Miguel Ángel Contreras
 
Como sería un viaje a la velocidad de la luz - Miguel Ángel Contreras
Como sería un viaje a la velocidad de la luz - Miguel Ángel ContrerasComo sería un viaje a la velocidad de la luz - Miguel Ángel Contreras
Como sería un viaje a la velocidad de la luz - Miguel Ángel Contreras
 
X taller bluevialiminal
X taller bluevialiminalX taller bluevialiminal
X taller bluevialiminal
 
X liminal buevia 2 (dllo.)-taller
X liminal buevia 2 (dllo.)-tallerX liminal buevia 2 (dllo.)-taller
X liminal buevia 2 (dllo.)-taller
 
X elalgoritmodelamemoria maria juliana soto (social media) (1) 1
X elalgoritmodelamemoria maria juliana soto (social media) (1) 1X elalgoritmodelamemoria maria juliana soto (social media) (1) 1
X elalgoritmodelamemoria maria juliana soto (social media) (1) 1
 
Theremin Alfredo Vargas
Theremin Alfredo Vargas Theremin Alfredo Vargas
Theremin Alfredo Vargas
 
Sonido y cine Ricardo Escallon
Sonido y cine Ricardo Escallon Sonido y cine Ricardo Escallon
Sonido y cine Ricardo Escallon
 
Photoshop para fotógrafos. Del cuarto oscuro al cuarto digital - Andrés Bautista
Photoshop para fotógrafos. Del cuarto oscuro al cuarto digital - Andrés BautistaPhotoshop para fotógrafos. Del cuarto oscuro al cuarto digital - Andrés Bautista
Photoshop para fotógrafos. Del cuarto oscuro al cuarto digital - Andrés Bautista
 
Photoshop para fotógrafos. Del cuarto oscuro al cuarto digital - Andrés Fonseca
Photoshop para fotógrafos. Del cuarto oscuro al cuarto digital - Andrés FonsecaPhotoshop para fotógrafos. Del cuarto oscuro al cuarto digital - Andrés Fonseca
Photoshop para fotógrafos. Del cuarto oscuro al cuarto digital - Andrés Fonseca
 
Aseguramiento de Vulnerabilidades Web con tecnologías OWASP
Aseguramiento de Vulnerabilidades Web con tecnologías OWASPAseguramiento de Vulnerabilidades Web con tecnologías OWASP
Aseguramiento de Vulnerabilidades Web con tecnologías OWASP
 
Mundos virtuales inmersivos y social shopping
Mundos virtuales inmersivos y social shopping Mundos virtuales inmersivos y social shopping
Mundos virtuales inmersivos y social shopping
 
Creación transmediática y comunidades en práctica
Creación transmediática y comunidades en prácticaCreación transmediática y comunidades en práctica
Creación transmediática y comunidades en práctica
 
Android+Arduino
Android+ArduinoAndroid+Arduino
Android+Arduino
 
Implementación de Cloud Computing con Software Libre y medidas de seguridad p...
Implementación de Cloud Computing con Software Libre y medidas de seguridad p...Implementación de Cloud Computing con Software Libre y medidas de seguridad p...
Implementación de Cloud Computing con Software Libre y medidas de seguridad p...
 
Linux en caja
Linux en cajaLinux en caja
Linux en caja
 

Recently uploaded

Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosJhonJairoRodriguezCe
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 

Recently uploaded (11)

Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
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
  • 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étodo Entidades @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 Iceberg OLAP-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 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