SlideShare una empresa de Scribd logo
1 de 30
Descargar para leer sin conexión
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
¨    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
Mecanismos de Autorización

                            Autorización
                                  


           Roles                                       Permisos



Tabla de           Grupos              Tabla de                   Reglas
  Roles             LDAP               Permisos



                       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
      (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
Reglas de Inferencia




         OLAP-2011 All Rights Reserved
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
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, 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
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étodos
Entidades                         @Restrict
                                  ("#{s:hasPermission(...)}")
•  Clase                          @PostLoad, @PrePersist,
•  Métodos CRUD                   @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
¨    Permiso                  ¨    Regla




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




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




                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 (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
¿Preguntas?




OLAP-2011 All Rights Reserved

Más contenido relacionado

Destacado

Reducing Microservice Complexity with Kafka and Reactive Streams
Reducing Microservice Complexity with Kafka and Reactive StreamsReducing Microservice Complexity with Kafka and Reactive Streams
Reducing Microservice Complexity with Kafka and Reactive Streamsjimriecken
 
A Practical Guide to Selecting a Stream Processing Technology
A Practical Guide to Selecting a Stream Processing Technology A Practical Guide to Selecting a Stream Processing Technology
A Practical Guide to Selecting a Stream Processing Technology confluent
 
Data integration with Apache Kafka
Data integration with Apache KafkaData integration with Apache Kafka
Data integration with Apache Kafkaconfluent
 
Kafka + Uber- The World’s Realtime Transit Infrastructure, Aaron Schildkrout
Kafka + Uber- The World’s Realtime Transit Infrastructure, Aaron SchildkroutKafka + Uber- The World’s Realtime Transit Infrastructure, Aaron Schildkrout
Kafka + Uber- The World’s Realtime Transit Infrastructure, Aaron Schildkroutconfluent
 
Demystifying Stream Processing with Apache Kafka
Demystifying Stream Processing with Apache KafkaDemystifying Stream Processing with Apache Kafka
Demystifying Stream Processing with Apache Kafkaconfluent
 
Introduction To Streaming Data and Stream Processing with Apache Kafka
Introduction To Streaming Data and Stream Processing with Apache KafkaIntroduction To Streaming Data and Stream Processing with Apache Kafka
Introduction To Streaming Data and Stream Processing with Apache Kafkaconfluent
 
Microservices in the Apache Kafka Ecosystem
Microservices in the Apache Kafka EcosystemMicroservices in the Apache Kafka Ecosystem
Microservices in the Apache Kafka Ecosystemconfluent
 
Deep Dive into Apache Kafka
Deep Dive into Apache KafkaDeep Dive into Apache Kafka
Deep Dive into Apache Kafkaconfluent
 
Streaming in Practice - Putting Apache Kafka in Production
Streaming in Practice - Putting Apache Kafka in ProductionStreaming in Practice - Putting Apache Kafka in Production
Streaming in Practice - Putting Apache Kafka in Productionconfluent
 

Destacado (10)

Reducing Microservice Complexity with Kafka and Reactive Streams
Reducing Microservice Complexity with Kafka and Reactive StreamsReducing Microservice Complexity with Kafka and Reactive Streams
Reducing Microservice Complexity with Kafka and Reactive Streams
 
Prolog & lisp
Prolog & lispProlog & lisp
Prolog & lisp
 
A Practical Guide to Selecting a Stream Processing Technology
A Practical Guide to Selecting a Stream Processing Technology A Practical Guide to Selecting a Stream Processing Technology
A Practical Guide to Selecting a Stream Processing Technology
 
Data integration with Apache Kafka
Data integration with Apache KafkaData integration with Apache Kafka
Data integration with Apache Kafka
 
Kafka + Uber- The World’s Realtime Transit Infrastructure, Aaron Schildkrout
Kafka + Uber- The World’s Realtime Transit Infrastructure, Aaron SchildkroutKafka + Uber- The World’s Realtime Transit Infrastructure, Aaron Schildkrout
Kafka + Uber- The World’s Realtime Transit Infrastructure, Aaron Schildkrout
 
Demystifying Stream Processing with Apache Kafka
Demystifying Stream Processing with Apache KafkaDemystifying Stream Processing with Apache Kafka
Demystifying Stream Processing with Apache Kafka
 
Introduction To Streaming Data and Stream Processing with Apache Kafka
Introduction To Streaming Data and Stream Processing with Apache KafkaIntroduction To Streaming Data and Stream Processing with Apache Kafka
Introduction To Streaming Data and Stream Processing with Apache Kafka
 
Microservices in the Apache Kafka Ecosystem
Microservices in the Apache Kafka EcosystemMicroservices in the Apache Kafka Ecosystem
Microservices in the Apache Kafka Ecosystem
 
Deep Dive into Apache Kafka
Deep Dive into Apache KafkaDeep Dive into Apache Kafka
Deep Dive into Apache Kafka
 
Streaming in Practice - Putting Apache Kafka in Production
Streaming in Practice - Putting Apache Kafka in ProductionStreaming in Practice - Putting Apache Kafka in Production
Streaming in Practice - Putting Apache Kafka in Production
 

Similar a Autorización Basada en Reglas con Drools

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
 
J2 Ee Para Seres Humanos Slides
J2 Ee Para Seres Humanos SlidesJ2 Ee Para Seres Humanos Slides
J2 Ee Para Seres Humanos Slidesmundojava
 
Programacion web java
Programacion web javaProgramacion web java
Programacion web javaCésar Ocampo
 
[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
 
Release note 4.5
Release note 4.5Release note 4.5
Release note 4.5Pablo
 
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
 
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
 
Web Performance para Magento
Web Performance para MagentoWeb Performance para Magento
Web Performance para MagentoJordi Rosell
 
Introducción a Tomcat
Introducción a TomcatIntroducción a Tomcat
Introducción a TomcatIker Canarias
 
Unidad 6 Protección y seguridad
Unidad 6 Protección y seguridadUnidad 6 Protección y seguridad
Unidad 6 Protección y seguridadJ M
 
Webinar Gratuito "Zed Attack Proxy"
Webinar Gratuito "Zed Attack Proxy"Webinar Gratuito "Zed Attack Proxy"
Webinar Gratuito "Zed Attack Proxy"Alonso Caballero
 
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
 

Similar a Autorización Basada en Reglas con Drools (20)

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)
 
J2 Ee Para Seres Humanos Slides
J2 Ee Para Seres Humanos SlidesJ2 Ee Para Seres Humanos Slides
J2 Ee Para Seres Humanos Slides
 
Ch14
Ch14Ch14
Ch14
 
Programacion web java
Programacion web javaProgramacion web java
Programacion web java
 
[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
 
Release note 4.5
Release note 4.5Release note 4.5
Release note 4.5
 
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
 
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
 
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
 
Introducción a Tomcat
Introducción a TomcatIntroducción a Tomcat
Introducción a Tomcat
 
Comandos ios
Comandos iosComandos ios
Comandos ios
 
Unidad 6 Protección y seguridad
Unidad 6 Protección y seguridadUnidad 6 Protección y seguridad
Unidad 6 Protección y seguridad
 
Webinar Gratuito "Zed Attack Proxy"
Webinar Gratuito "Zed Attack Proxy"Webinar Gratuito "Zed Attack Proxy"
Webinar Gratuito "Zed Attack Proxy"
 
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
 
Tenesaca jhonny bdii_t7
Tenesaca jhonny bdii_t7Tenesaca jhonny bdii_t7
Tenesaca jhonny bdii_t7
 

Último

9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 

Último (16)

9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 

Autorización Basada en Reglas con 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 ¨  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. Mecanismos de Autorización Autorización   Roles Permisos Tabla de Grupos Tabla de Reglas Roles LDAP Permisos 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 (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. Reglas de Inferencia OLAP-2011 All Rights Reserved
  • 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. 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, 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. 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étodos Entidades @Restrict ("#{s:hasPermission(...)}") •  Clase @PostLoad, @PrePersist, •  Métodos CRUD @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 ¨  Permiso ¨  Regla OLAP-2011 All Rights Reserved
  • 23. Ejemplo 2: Restricción por Usuario ¨  Permiso ¨  Regla OLAP-2011 All Rights Reserved
  • 24. Ejemplo 3: Restricción por Contexto ¨  Permiso ¨  Regla 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 (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