¿Cómo habilitar seguridad en mi aplicación web o para smart devices con GeneXus X Evolution 2?
Algo que casi siempre necesitamos en cualquier sistema que hagamos es controlar el acceso de los usuarios que pueden usarlo y seguramente también necesitemos controlar qué permisos tienen dichos usuarios sobre las distintas acciones que ofrece el sistema.
Por un lado entonces debemos resolver el problema de autenticación donde ya no es viable simplemente tener una tabla con usuarios y contraseñas pues los tiempos han cambiado y vemos que es cada vez más común que las aplicaciones y sitios nos ofrecen identificarnos con nuestras cuentas de Facebook y de Twitter. Ni que hablar que si vamos a implementar esto además tenemos que hacerlo siguiendo las buenas prácticas que dicta OWASP y tener en cuanta no sólo la arquitectura de una aplicación web, sino que ahora se nos suma el mundo de los smart devices agregando nuevas plataformas (iOS, Android, Blackberry) y por lo tanto haciendo más complejo lograr tener una aplicación que nos de la tranquilidad de poder dormir sin estar pensando qué "agujeros" dejamos por ahí.
A todo esto tenemos que agregarle el chequeo de permisos cada vez que se ejecuta un programa de nuestro sistema de forma que nos aseguremos que el usuario que quiere ejecutarlo tenga los permisos correspondientes. En general es algo que como desarrolladores subestimamos y tendemos dejar para el final por verlo como una tarea repetitiva y tediosa, lo cual agranda los riesgos de que nos olvidemos de poner los controles de sesión y permisos en alguno de los cientos o miles de programas que pueda tener nuestro sistema.
A partir de la versión X Evolution 2 de GeneXus viene built-in un nuevo módulo de seguridad que nos ayuda a resolver esto de una manera declarativa y sobre todo con mucho menos programación tengamos resuelto automáticamente los aspectos de autenticación y autorización de nuestras aplicaciones tanto para Web como para Smart Devices. Esta funcionalidad se llama GeneXus Access Manager (GAM) y el siguiente video muestra como partiendo de una Base de Conocimiento en la cual no se tenía aún nada implementado para los controles de seguridad pasamos a tener todo el esquema de autenticación resuelto declarando propiedades en nuestra KB y dejando que GeneXus se encargue de generar todo el código necesario para que esto se cumpla y así evitarnos tener que programar todos estos controles en cada uno de nuestros programas.
Los invito a que conozca más sobre el GAM desde acá en el Wiki de la comunidad GeneXus.
Otra lectura que considero importante para entenderlo es conocer los escenarios de autenticación y los escenarios de autorización que se pueden resolver con el GAM.
Por un lado entonces debemos resolver el problema de autenticación donde ya no es viable simplemente tener una tabla con usuarios y contraseñas pues los tiempos han cambiado y vemos que es cada vez más común que las aplicaciones y sitios nos ofrecen identificarnos con nuestras cuentas de Facebook y de Twitter. Ni que hablar que si vamos a implementar esto además tenemos que hacerlo siguiendo las buenas prácticas que dicta OWASP y tener en cuanta no sólo la arquitectura de una aplicación web, sino que ahora se nos suma el mundo de los smart devices agregando nuevas plataformas (iOS, Android, Blackberry) y por lo tanto haciendo más complejo lograr tener una aplicación que nos de la tranquilidad de poder dormir sin estar pensando qué "agujeros" dejamos por ahí.
A todo esto tenemos que agregarle el chequeo de permisos cada vez que se ejecuta un programa de nuestro sistema de forma que nos aseguremos que el usuario que quiere ejecutarlo tenga los permisos correspondientes. En general es algo que como desarrolladores subestimamos y tendemos dejar para el final por verlo como una tarea repetitiva y tediosa, lo cual agranda los riesgos de que nos olvidemos de poner los controles de sesión y permisos en alguno de los cientos o miles de programas que pueda tener nuestro sistema.
A partir de la versión X Evolution 2 de GeneXus viene built-in un nuevo módulo de seguridad que nos ayuda a resolver esto de una manera declarativa y sobre todo con mucho menos programación tengamos resuelto automáticamente los aspectos de autenticación y autorización de nuestras aplicaciones tanto para Web como para Smart Devices. Esta funcionalidad se llama GeneXus Access Manager (GAM) y el siguiente video muestra como partiendo de una Base de Conocimiento en la cual no se tenía aún nada implementado para los controles de seguridad pasamos a tener todo el esquema de autenticación resuelto declarando propiedades en nuestra KB y dejando que GeneXus se encargue de generar todo el código necesario para que esto se cumpla y así evitarnos tener que programar todos estos controles en cada uno de nuestros programas.
Los invito a que conozca más sobre el GAM desde acá en el Wiki de la comunidad GeneXus.
Otra lectura que considero importante para entenderlo es conocer los escenarios de autenticación y los escenarios de autorización que se pueden resolver con el GAM.
Comentarios