Clase01 Documentacion

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 13

1.

Bloque uno

1.1. Genexus Access Manager (GAM)

En la actualidad las aplicaciones web necesitan un esquema de seguridad riguroso que


las protejan del mundo del internet y de los riesgos, es por eso que las aplicaciones
deben de cumplir con un estándar de seguridad.
Generalmente las aplicaciones requieren restringir el uso a usuarios debidamente
autorizados, por lo cual necesitan contar con algún esquema de login, mediante el cual
verifiquen la autenticación del usuario y eventualmente autorizar o restringir el uso de
algunas funcionalidades dependiendo del perfil del mismo.
Para cumplir con estos requisitos, GeneXus ofrece un módulo de seguridad llamado
GeneXus Access Manager (GAM). Este módulo se ocupa de las funciones de
autenticación y autorización para aplicaciones web y smart device.
GAM proporciona API para administrar la seguridad de nuestras aplicaciones.
Tiene su propia base de datos, lógicamente independiente de la aplicación de base de
datos, aunque ambas pueden ser físicamente iguales (con diferentes esquemas de
tabla).
Se pueden administrar usuarios y políticas de seguridad a través de GAM Web
Backoffice.

https://wiki.genexus.com/commwiki/servlet/wiki?19888,GeneXus%20Access%20Mana
ger

1.2. Estructura básica del GAM

El Repositorio de GAM es una entidad GeneXus Access Manager es una instancia que
se ejecuta en un servidor y que provee servicio a más de un inquilino.
En este escenario, estos inquilinos deben usar la misma base de datos GAM y diferentes
repositorios GAM dentro de la base de datos GAM. Esto se llama una aplicación
multiusuario. Proporciona a cada inquilino un conjunto dedicado de roles GAM,
aplicaciones GAM y políticas de seguridad GAM.

El siguiente esquema representa la conceptualización del sistema de seguridad que


GAM ofrece.
GAM Version: 4.0.3

https://wiki.genexus.com/commwiki/servlet/wiki?17568,GAM+Repository,

1.3. GAM Primeros pasos

Para la activar la seguridad GAM en una kb nueva seleccionamos:


Como consecuencia se importará el GeneXus Access Manager, que se integra a nuestra
aplicación, permitiendo así resolver lo referente a la seguridad de la misma. Esto
agregará a nuestra KB dos carpetas bajo el Root Module, que contienen varios objetos.
Al habilitar el GAM entonces se importaron varios objetos. Estos objetos podemos
encontrarlos en los folders GAM_Examples y GAM_Library.
El folder GAM_EXamples, contiene todos los objetos de ejemplo que se importan con el
GAM (nos referimos a Web Panels y Panels for Smart Devices). Estos objetos van a ser
utilizados para la autenticación y autorización de los usuarios

Posteriormente configuramos el nivel de seguridad opciones;


Authorization – Autentication
Además podemos ver el ID de la aplicación.
En la sección Web specific, configuramos los objeto Login y el objeto que se visualizara
en caso de que un usuario no esté autorizado a una acción.
Cuando se habilita el GAM en una aplicación, se realizan varios cambios.

Por un lado, se habilitan diferentes propiedades para configurar cuál será el objeto para
Login tanto para aplicaciones Web como Smart Devices.

Podemos observar la propiedad Login Object for Web con el valor GAMExampleLogin,
para indicar que se utilizará ese objeto para el login de las aplicaciones Web y la
propiedad Login Object for SD, con el valor GAMSDLogin, para indicar que es el login
de las aplicaciones para Smart Devices.

En configuración del Environmet configuramos usuario y contraseña para el


administrador del repositorio y para la conexión.
1.3.1.Recorrido por el GAM Web Backend

GAM Backend es una aplicación web que permite al administrador de GAM administrar
los usuarios de GAM Repository, GAM Roles, GAM Security Policies, etc.
Los objetos GeneXus de esta aplicación son parte de los ejemplos GAM distribuidos por
GeneXus cuando la propiedad Enable Integrated Security se establece en TRUE (los
objetos se encuentran en la carpeta de ejemplos GAM).
La recomendación es guardar los objetos antes de modificarlos, ya que los ejemplos
pueden cambiar en cada actualización, por lo que los cambios del usuario podrían
perderse.
Las acciones que se pueden realizar utilizando la aplicación back-end de GAM consisten
básicamente en la administración de:

 GAM Users

Permite la creación, actualización o eliminación de usuarios en un repositorio, además


de permitir definir reglas a un usuario especifico, tales como permitir o no si que el
usuario cambie su contraseña, si deberá cambiar en su primer login, el estatus del
usuario habilitar usuario en un repositorio y definir política de seguridad a un usuario.
 Roles

Un rol es una forma de agrupar permisos GAM en una aplicación GAM., permitiendo
organizar jerarquías de Roles.

Desde GAM Web Backoffice puede crear nuevos roles, editar roles existentes y agregar
permisos a un rol.

Si una función está asociada a un usuario, los permisos de función están asociados a
ese usuario.
 Security Policies

Las políticas de seguridad definen normas, reglas y estándares que se regirá un usuario
en tiempo de ejecución, se podrán definir a nivel usuario, roles o repositorios validando
en tiempo de ejecución según el orden.

Estas políticas definirán el nivel de seguridad que deberá regir un usuario.

A un usuario de GAM se le puede asignar una política de seguridad, y también se le


puede asignar una política de seguridad a las funciones de GAM. Además, se puede
establecer una política de seguridad predeterminada para el Repositorio de GAM.
Esto significa que cuando se verifican los permisos de usuario en el momento de la
ejecución, se tienen en cuenta los permisos asociados con el usuario a través de los
roles. Sin embargo, los permisos directamente asociados con el usuario tienen prioridad.

¿Qué implica cuando los Roles se pueden definir en una jerarquía?

Si un rol se asocia con un usuario, los permisos de rol se asocian indirectamente con
ese usuario. Esto significa que cuando se verifican los permisos de usuario en el
momento de la ejecución, se tienen en cuenta los permisos asociados con el usuario a
través de los roles.

Además, si el rol tiene hijos, los permisos de los roles secundarios también están
asociados con el usuario.
 Applications

Como componente de seguridad, GAM puede ser utilizado por diferentes aplicaciones
(que pueden ser aplicaciones de dispositivos inteligentes, aplicaciones web o incluso
servicios web).
Conceptualmente, las aplicaciones GAM agrupan Permisos GAM que están
relacionados con objetos GeneXus.

¿Qué es una aplicación GAM?


Aplicación web
Si la KB de GeneXus tiene un entorno web, solo tiene una aplicación WEB GAM, que
se identifica mediante un GUID configurado en la propiedad Id de la aplicación. El
nombre de la aplicación WEB es el nombre de la KB e incluye los permisos de todos los
objetos web de la KB. La información del GUID de la aplicación WEB GAM se almacena
en el archivo application.gam, que se guarda en el directorio del modelo y debe incluirse
en la implementación.

Las aplicaciones GAM se definen dentro de un repositorio. Cada repositorio puede


contener más de una aplicación GAM.
Además, un Repositorio puede almacenar más de una aplicación GAM WEB porque
desde diferentes KBs puede usar un ID de Aplicación diferente para crear una aplicación
WEB GAM diferente en el mismo repositorio.

¿Cuál es el propósito de las aplicaciones de GAM?


Primero, la aplicación GAM se verifica en tiempo de ejecución en el momento de la
autenticación del usuario.
Otro propósito de definir aplicaciones GAM dentro del repositorio GAM es asociar
Permisos a estas aplicaciones y formar grupos de permisos.
En tiempo de ejecución, los permisos se verifican teniendo en cuenta la aplicación que
se está ejecutando. Entonces, cuando el usuario inicia sesión en un repositorio y se
necesita un permiso para ejecutar una acción, el permiso debe definirse en la aplicación
GAM que está ejecutando (y debe tener un rol donde este permiso esté permitido).
Entonces, los permisos que pueden asociarse a una aplicación GAM están relacionados
en algún sentido.

De forma predeterminada, cuando F5 procesa los permisos, se crean las siguientes


aplicaciones de GAM en el repositorio:
Una aplicación GAM para cada objeto principal para SD. La aplicación agrupa los
permisos de este objeto principal y sus descendientes. Entonces, si tiene Dashboard1 y
Dashboard2 que son principales, habrá una aplicación GAM para cada uno de ellos.

 Repository Configuration

Permite configurar o definir parámetros del repositorio, configuración tales como definir
un tipo de autenticación por defecto, rol por defecto, configuración general de los
usuarios, configuración de la sesiones.
Una base de datos GAM puede asignar más de un repositorio. De hecho, siempre hay
al menos dos repositorios en una base de datos GAM.
El "Repositorio de GAM Manager" siempre existe. Aquí es donde se definen los usuarios
administradores de todos los repositorios.

 Repository Connections

Muestra todas las conexiones de repositorios que la aplicación tenga disponible.


 Authentication Types

Defina diferentes tipos de autenticación para la aplicación que tiene habilitada la


seguridad integrada (GeneXus Access Manager).
Los tipos de autenticación se pueden definir usando GAM Web Backoffice o utilizando
las apis de gam.

Esto permitirá las diferentes formas por las que un usuario podrá autenticarse en la
aplicación, las formas disponibles son:
 Change Password

Panel en la que permite al usuario mediante una confirmación el cambio de su


contraseña

Change Working Repository

Permite cambio entre repositorio, es decir podemos conectarnos a entre repositorios en


este panel.
Cuando necesitamos conectarnos entre repositorios?:
este es necesario cuando se necesita ingresar a un repositorio especifica por ejemplo
para la creación de un repositorio nuevo deberemos antes conectarnos a el repositorio
GAM MANAGER, es el único lugar donde se permite la creación de repositorios.

Event Suscription
El propósito de la suscripción a GAM Events es permitir el disparo automático de código
adicional (externo) cuando se ejecuta un evento GAM.
Considere un escenario en el que tiene una tabla de Usuarios, y la información del
usuario es redundante con la tabla Usuarios de GAM. Necesitas mantener la tabla de
Usuarios actualizada, es decir, cada vez que se actualice (cree o elimine) un Usuario de
GAM, la tabla Usuarios de la aplicación propia debería actualizarse en consecuencia.

También podría gustarte