05 SmartDevices GAM PDF

También podría gustarte

Está en la página 1de 21

Nuestro problema a resolver ser construir una aplicacin para una inmobiliaria, con una parte Web y

una parte para Smart Devices para ser utilizada por los agentes inmobiliarios en su trabajo mvil.
Para ello creamos una KB, y las transacciones necesarias: Property para registrar las propiedades
inmobiliarias en venta o alquiler y Neighborhood para ingresar los vecindarios donde estn ubicadas
las propiedades.
Ahora queremos agregarle Seguridad a la aplicacin, tanto a la parte Web como a la de Smart
Devices.
Esto significa asegurar que todos los usuarios que ingresen estn debidamente autenticados, (es
decir, 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 aplicacin).
Veamos cules son algunos de los aspectos que hay que tener en cuenta, desde el punto de vista
del desarrollador GeneXus, al momento de implementar una solucin para resolver la seguridad de
las 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 autenticacin.
Tradicionalmente se programa un procedimiento que contiene la lgica de control de acceso, este
procedimiento debe verificar los roles y permisos de cada usuario que ingresa a la aplicacin.
Cuantos ms roles y permisos se tengan y ms complejas se hacen las polticas de seguridad de las
empresas, el cdigo crece y se hace ms complicada la verificacin de permisos, que se debe
replicar en cada objeto y evento.
En el caso de la aplicaciones para Smart Devices, al ser aplicaciones distribuidas, donde una parte
de ellas ejecuta en el propio dispositivo y la capa de negocios de la aplicacin se resuelve a travs de
servicios Rest, estn expuestas a accesos indeseados.
Lo que se hace es verificar que solamente usuarios debidamente autenticados y autorizados puedan
acceder a la aplicacin, evitando la ejecucin de usuarios no autorizados.
Estos aspectos son los que motivaron el desarrollo de un mdulo de Seguridad para aplicaciones
GeneXus, llamado GAM, GeneXus Access Manager, y es lo que vamos a utilizar en nuestra
aplicacin para manejar la Seguridad.
El GAM es un mdulo de seguridad que resuelve los problemas de autenticacin y autorizacin, tanto
para aplicaciones Web como para aplicaciones Smart Devices con GeneXus.

Con el GAM lo que se busca es que la solucin de Seguridad se utilice lo ms declarativamente


posible dentro de la aplicacin, sin crear complejidad en el cdigo.

Esto se puede lograr fcilmente, ya que el GAM es un Mdulo de Seguridad desarrollado en una KB
GX, que se integra a nuestra aplicacin y permite resolver de manera centralizada todo lo referente a
la Seguridad de la misma.
Internamente para resolver la Autenticacin, se usa Oauth para resolver la seguridad en el caso de
aplicaciones para SD y se usan web sessions para la seguridad de aplicaciones WEB.

En el caso de la Autorizacin, est basada en Roles, utilizando el modelo Role Based Access Control
y se encapsulan los mtodos y propiedades y todo lo necesario para el manejo de autorizacin en la
aplicacin.
Adems el GAM expone una API para acceder a estos mtodos y propiedades en caso de que sea
necesario hacerlo desde nuestra aplicacin.
El GAM provee diferentes Tipos de Autenticacin, los tipos disponibles son:
Autenticacin 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 autenticacin de estas aplicaciones, no
tenindose que definir usuarios locales en la aplicacin. La autenticacin se realiza en el sitio de
FB o Twitter respectivamente
Se puede tambin autenticar contra servicios Web externos, usando el repositorio de usuarios y
roles de otra aplicacin, facilitando de esa forma la integracin de aplicaciones
En cuanto a la Autorizacin, se valida la Autorizacin de ejecucin de objetos, con esto se indica si un
objeto se puede ejecutar o no.
Esta validacin 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
Tambin se verifican los permisos sobre los modos Insert, Update, Delete y Display de las
Transacciones Web y las acciones de Insert, Update y Delete sobre los Work With for Smart Devices.
Ver video Aplicacin del GAM:

http://training.genexus.com/GeneXus-para-Smart-Devices/GeneXus-para-Smart-
Devices?es#aplicacin-a-gam-ES
Por lo visto en este video, con el GAM, GeneXus Access Manager, tenemos una solucin completa e
integrada para resolver la Authenticacin y Autorizacin de nuestras aplicaciones para Smart Devices
y aplicaciones Web desarrolladas con GeneXus.
Esto nos permite implementar aplicaciones GeneXus Seguras.
Como decamos, adems el GAM expone una API para acceder a diferentes mtodos y propiedades
en caso de que sea necesario acceder desde nuestra aplicacin a la KB del GAM.
El acceso a las propiedades y mtodos de la API se realiza a travs de external objects que se
importan al habilitar el GAM en nuestra aplicacin, y podemos realizar varias acciones, como ser:
Obtener el usuario que est logueado en caso que necesitemos utilizarlo dentro de la aplicacin
O en lugar del nombre, podramos necesitar su direccin de correo o algn otro dato relacionado
con el usuario
Tambin podramos necesitar los tipos de autenticacin configurados en nuestra aplicacin
O podramos necesitar los permisos asociados a un rol, para realizar alguna accin con ellos
dentro de la aplicacin
Veamos un ejemplo de uso de la API del GAM desde nuestra aplicacin para la inmobiliaria.
Como vimos, los agentes inmobiliarios pueden ingresar y visualizar las propiedades que poseen en
venta o alquiler accediendo a la aplicacin para Smart Devices, desde sus dispositivos.

Pero como la Transaccin Property es nica para todos los agentes inmobiliarios, debemos identificar
al agente que ingresa una propiedad en el sistema. Es por esto que debemos almacenar en la
Transaccin Property, la identificacin del agente inmobiliario que ingresa la propiedad.

Adems, en el List de Propiedades que se muestra en la aplicacin para Smart Devices, se requiere
que los agentes inmobiliarios solo puedan visualizar los registros ingresados por ellos y no la
informacin ingresada por otro agente inmobiliario.

Ver el video Uso de la API del GAM:

http://training.genexus.com/GeneXus-para-Smart-Devices/GeneXus-para-Smart-Devices?es#uso-de-
la-api-del-gam
De esta forma, el habilitar el GeneXus Access Manager en nuestra aplicacin nos permite hacer uso
de los mtodos y propiedades de la API fcilmente, para obtener informacin sobre el GAM y poder
utilizarla desde nuestra aplicacin.
Es decir, la API nos permite extender la funcionalidad de los mecanismos de seguridad provistos por
el GAM.

También podría gustarte