05 SmartDevices GAM

21

Transcript of 05 SmartDevices GAM

Page 1: 05 SmartDevices GAM
Page 2: 05 SmartDevices GAM

Nuestro problema a resolver será construir una aplicación para una inmobiliaria, con una parte Web yuna parte para Smart Devices para ser utilizada por los agentes inmobiliarios en su trabajo móvil.Para ello creamos una KB, y las transacciones necesarias: Property para registrar las propiedadesinmobiliarias en venta o alquiler y Neighborhood para ingresar los vecindarios donde están ubicadaslas propiedades.

Page 3: 05 SmartDevices GAM

Ahora queremos agregarle Seguridad a la aplicación, tanto a la parte Web como a la de SmartDevices.

Page 4: 05 SmartDevices GAM

Esto significa asegurar que todos los usuarios que ingresen estén debidamente autenticados, (esdecir, que el usuario sea quien dice ser); y autorizados (es decir, una vez que el usuario se autentica,se le permita el acceso o no a ciertas partes de la aplicación).

Page 5: 05 SmartDevices GAM

Veamos cuáles son algunos de los aspectos que hay que tener en cuenta, desde el punto de vistadel desarrollador GeneXus, al momento de implementar una solución para resolver la seguridad delas aplicaciones.En el caso de las aplicaciones Web, como estas aplicaciones tienen varios puntos de entrada,cualquier objeto accesible por URL debe chequear permisos de autenticación.

Page 6: 05 SmartDevices GAM

Tradicionalmente se programa un procedimiento que contiene la lógica de control de acceso, esteprocedimiento debe verificar los roles y permisos de cada usuario que ingresa a la aplicación.Cuantos más roles y permisos se tengan y más complejas se hacen las políticas de seguridad de lasempresas, el código crece y se hace más complicada la verificación de permisos, que se debereplicar en cada objeto y evento.

Page 7: 05 SmartDevices GAM

En el caso de la aplicaciones para Smart Devices, al ser aplicaciones distribuidas, donde una partede ellas ejecuta en el propio dispositivo y la capa de negocios de la aplicación se resuelve a través deservicios Rest, están expuestas a accesos indeseados.Lo que se hace es verificar que solamente usuarios debidamente autenticados y autorizados puedanacceder a la aplicación, evitando la ejecución de usuarios no autorizados.

Page 8: 05 SmartDevices GAM

Estos aspectos son los que motivaron el desarrollo de un módulo de Seguridad para aplicacionesGeneXus, llamado GAM, GeneXus Access Manager, y es lo que vamos a utilizar en nuestraaplicación para manejar la Seguridad.

Page 9: 05 SmartDevices GAM

El GAM es un módulo de seguridad que resuelve los problemas de autenticación y autorización, tantopara aplicaciones Web como para aplicaciones Smart Devices con GeneXus.

Con el GAM lo que se busca es que la solución de Seguridad se utilice lo más declarativamenteposible dentro de la aplicación, sin crear complejidad en el código.

Esto se puede lograr fácilmente, ya que el GAM es un Módulo de Seguridad desarrollado en una KBGX, que se integra a nuestra aplicación y permite resolver de manera centralizada todo lo referente ala Seguridad de la misma.

Page 10: 05 SmartDevices GAM

Internamente para resolver la Autenticación, se usa Oauth para resolver la seguridad en el caso deaplicaciones para SD y se usan web sessions para la seguridad de aplicaciones WEB.

En el caso de la Autorización, está basada en Roles, utilizando el modelo Role Based Access Controly se encapsulan los métodos y propiedades y todo lo necesario para el manejo de autorización en laaplicación.

Page 11: 05 SmartDevices GAM

Además el GAM expone una API para acceder a estos métodos y propiedades en caso de que seanecesario hacerlo desde nuestra aplicación.

Page 12: 05 SmartDevices GAM

El GAM provee diferentes Tipos de Autenticación, los tipos disponibles son:• Autenticación local, donde los usuarios y todas sus credenciales son almacenados en una base

de datos de la cual somos propietarios• Facebook y Twitter, aquí se utilizan los mecanismos de autenticación de estas aplicaciones, no

teniéndose que definir usuarios locales en la aplicación. La autenticación se realiza en el sitio deFB o Twitter respectivamente

• Se puede también autenticar contra servicios Web externos, usando el repositorio de usuarios yroles de otra aplicación, facilitando de esa forma la integración de aplicaciones

Page 13: 05 SmartDevices GAM

En cuanto a la Autorización, se valida la Autorización de ejecución de objetos, con esto se indica si unobjeto se puede ejecutar o no.Esta validación se realiza sobre los siguientes objetos Web:• Web Panels• Web Components con la propiedad URL Access=Yes• Transacciones Web

Y para Smart Devices de los objetos: Work With for Smart Devices y Panels for Smart Devices

Page 14: 05 SmartDevices GAM

También se verifican los permisos sobre los modos Insert, Update, Delete y Display de lasTransacciones Web y las acciones de Insert, Update y Delete sobre los Work With for Smart Devices.

Page 15: 05 SmartDevices GAM

Ver video Aplicación del GAM:

http://training.genexus.com/GeneXus-para-Smart-Devices/GeneXus-para-Smart-Devices?es#aplicación-a-gam-ES

Page 16: 05 SmartDevices GAM

Por lo visto en este video, con el GAM, GeneXus Access Manager, tenemos una solución completa eintegrada para resolver la Authenticación y Autorización de nuestras aplicaciones para Smart Devicesy aplicaciones Web desarrolladas con GeneXus.Esto nos permite implementar aplicaciones GeneXus Seguras.

Page 17: 05 SmartDevices GAM

Como decíamos, además el GAM expone una API para acceder a diferentes métodos y propiedadesen caso de que sea necesario acceder desde nuestra aplicación a la KB del GAM.

Page 18: 05 SmartDevices GAM

El acceso a las propiedades y métodos de la API se realiza a través de external objects que seimportan al habilitar el GAM en nuestra aplicación, y podemos realizar varias acciones, como ser:• Obtener el usuario que está logueado en caso que necesitemos utilizarlo dentro de la aplicación• O en lugar del nombre, podríamos necesitar su dirección de correo o algún otro dato relacionado

con el usuario

Page 19: 05 SmartDevices GAM

• También podríamos necesitar los tipos de autenticación configurados en nuestra aplicación• O podríamos necesitar los permisos asociados a un rol, para realizar alguna acción con ellos

dentro de la aplicación

Page 20: 05 SmartDevices GAM

Veamos un ejemplo de uso de la API del GAM desde nuestra aplicación para la inmobiliaria.Como vimos, los agentes inmobiliarios pueden ingresar y visualizar las propiedades que poseen enventa o alquiler accediendo a la aplicación para Smart Devices, desde sus dispositivos.

Pero como la Transacción Property es única para todos los agentes inmobiliarios, debemos identificaral agente que ingresa una propiedad en el sistema. Es por esto que debemos almacenar en laTransacción Property, la identificación del agente inmobiliario que ingresa la propiedad.

Además, en el List de Propiedades que se muestra en la aplicación para Smart Devices, se requiereque los agentes inmobiliarios solo puedan visualizar los registros ingresados por ellos y no lainformación ingresada por otro agente inmobiliario.

Ver el video Uso de la API del GAM:

http://tra ining.gene xus.com/Ge neXus-para -Smart-Dev ices/GeneX us-para-Sm art-Device s?es#uso-d e-la-api-d el-gam

Page 21: 05 SmartDevices GAM

De esta forma, el habilitar el GeneXus Access Manager en nuestra aplicación nos permite hacer usode los métodos y propiedades de la API fácilmente, para obtener información sobre el GAM y poderutilizarla desde nuestra aplicación.Es decir, la API nos permite extender la funcionalidad de los mecanismos de seguridad provistos porel GAM.