Nuestro problema a resolver será construir una aplicación para una inmobiliaria, con una parte Web y una 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 propiedades inmobiliarias en venta o alquiler y Neighborhood para ingresar los vecindarios donde están ubicadas las propiedades.

. tanto a la parte Web como a la de Smart Devices.Ahora queremos agregarle Seguridad a la aplicación.

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

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

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

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

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

Con el GAM lo que se busca es que la solución de Seguridad se utilice lo más declarativamente posible dentro de la aplicación.El GAM es un módulo de seguridad que resuelve los problemas de autenticación y autorización. que se integra a nuestra aplicación y permite resolver de manera centralizada todo lo referente a la Seguridad de la misma. Esto se puede lograr fácilmente. ya que el GAM es un Módulo de Seguridad desarrollado en una KB GX. sin crear complejidad en el código. . tanto para aplicaciones Web como para aplicaciones Smart Devices con GeneXus.

está basada en Roles.Internamente para resolver la Autenticación. 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 Autorización. utilizando el modelo Role Based Access Control y se encapsulan los métodos y propiedades y todo lo necesario para el manejo de autorización en la aplicación.

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

los tipos disponibles son: • Autenticación local. usando el repositorio de usuarios y roles de otra aplicación. La autenticación se realiza en el sitio de FB o Twitter respectivamente • Se puede también autenticar contra servicios Web externos. donde los usuarios y todas sus credenciales son almacenados en una base de datos de la cual somos propietarios • Facebook y Twitter. facilitando de esa forma la integración de aplicaciones . no teniéndose que definir usuarios locales en la aplicación.El GAM provee diferentes Tipos de Autenticación. aquí se utilizan los mecanismos de autenticación de estas aplicaciones.

con esto se indica si un objeto se puede ejecutar o no.En cuanto a la Autorización. 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 . se valida la Autorización de ejecución de objetos.

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

com/GeneXus-para-Smart-Devices/GeneXus-para-SmartDevices?es#aplicación-a-gam-ES .Ver video Aplicación del GAM: http://training.genexus.

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

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

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

• • 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 .

Veamos un ejemplo de uso de la API del GAM desde nuestra aplicación para la inmobiliaria. desde sus dispositivos. se requiere que los agentes inmobiliarios solo puedan visualizar los registros ingresados por ellos y no la información ingresada por otro agente inmobiliario.com/GeneXus-para-Smart-Devices/GeneXus-para-Smart-Devices?es#uso-dela-api-del-gam . la identificación del agente inmobiliario que ingresa la propiedad. Pero como la Transacción Property es única para todos los agentes inmobiliarios. Es por esto que debemos almacenar en la Transacción Property.genexus. Además. Ver el video Uso de la API del GAM: http://training. Como vimos. en el List de Propiedades que se muestra en la aplicación para Smart Devices. debemos identificar al agente que ingresa una propiedad en el sistema. los agentes inmobiliarios pueden ingresar y visualizar las propiedades que poseen en venta o alquiler accediendo a la aplicación para Smart Devices.

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

Sign up to vote on this title
UsefulNot useful