GAM GeneXus Access Manager

28
GeneXus Access Manager Artech Diciembre 2013

description

Qué abarca la seguridad de una aplicacion. GAM es una solucion de seguridad que se incorpora de manera automática en nuestras kbs. Se liberó en la versión Evolution 2, y busca resolver tanto problemas de autenticación como de autorizacion en nuestras apliaciones WEB y Smart Devices.

Transcript of GAM GeneXus Access Manager

Page 1: GAM GeneXus Access Manager

GeneXus Access Manager

Artech Diciembre 2013

Page 2: GAM GeneXus Access Manager

Seguridad

• Infraestructura• Seguridad a nivel de deploy de la aplicación• Seguridad en la aplicación a nivel de programación

• http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?21889• Controles de autenticación / autorización - GAM

Page 3: GAM GeneXus Access Manager

Aplicaciones WEB

• Autenticación• N puntos de entrada• Complejidad del código de control de acceso según políticas

• Autorización• Granularidad de roles y permisos

Page 4: GAM GeneXus Access Manager

GAM

• Solución de seguridad integrada en GeneXus

• Autenticación y Autorización

• Seguridad en aplicaciones WEB y Smart Devices

Page 5: GAM GeneXus Access Manager

Cómo Funciona en web

• Login/Autenticación• Chequeo de seguridad en

cada Get/Post/Ajax/etc.

WEB APPLICATIO

N

APP. DB GAM DB

GAM API

APPLICATION SERVER

Login Usuario Password

Web page

Session

GET o POST o ServiciosRespuesta

Page 6: GAM GeneXus Access Manager

Escenarios

• Autenticación • Local: Las credenciales del los usuarios residen en las propias tablas del

GAM.• Externa

• Login Facebook, Twitter, Google, WS externos (SOAP), Autenticación Custom.

• GAM Escenarios de Autenticación• http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?15937

• Autorización• Autorización puede ser delegada.

• GAM Escenarios de Autorización• http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?17583

Page 7: GAM GeneXus Access Manager

Cómo habilitar el GAM

Propiedades de la versión:

• Enable Integrated Security = TRUE

• Integrated Security Level • None• Authentication• Authorization

http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?19946

Page 8: GAM GeneXus Access Manager

Qué ocurre a nivel de GX?

• API del GAM • External Objects para su acceso

• Ejemplos de uso de la API• Backend para administración del repositorio• GAMExampleLogin, GAMExampleNotAuthorized, etc.

• Creación de datastore secundario para repositorio del GAM

• Inicialización de propiedades• Usuario «admin» • Login Object for Web / SD

• Proceso de activación del GAM:• http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?21973

Page 9: GAM GeneXus Access Manager

Qué ocurre en la aplicación?

• Control de acceso automático en cada objeto

• Control de flujo automático de la aplicación luego del control de acceso

Page 10: GAM GeneXus Access Manager

Backend del GAM

• Consola Web de administración (customizable)• GAM Users• Roles• Security Policies• Applications• Repository Configuration• Repository Connections• Authentication Types• GAM Permissions.

• GAM Web Backoffice:• http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?15935

Page 11: GAM GeneXus Access Manager

API del GAM

• External objects de la librería del GAM

Métodos• Load()• Save()• Delete()• Fail()• Success()

Otras propiedades y métodos• GAMRole.AddPermission• GAMUser.GetRoles

etc

• GAM API:• http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?16535

Page 12: GAM GeneXus Access Manager

Ejemplo de uso de la API del GAM

Page 13: GAM GeneXus Access Manager

Autorización

• Integrated Security Level = Authorization• Propiedad Permission Prefix

• Generación de Permisos automáticos por cada objeto• <Permission Prefix>_Execute

• Permisos de ejecución y sobre los modos de transacciones y servicios REST

• Código del chequeo de seguridad en el generador

• GAM Autorización:http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?17918

Page 14: GAM GeneXus Access Manager

Permisos en Transacciones

• En las Transacciones WEB• <entity>_FullControl

• <entity>_Execute• <entity>_Insert• <entity>_Update• <entity>_Delete

• En las Transacciones expuestas como Servicios Rest • <entity>_Services_FullControl

• <entity>_Services_Execute• <entity>_Services_Insert• <entity>_Services_Update• <entity>_Services_Delete

• http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?17916

Page 15: GAM GeneXus Access Manager

Integración de aplicaciones con GAM

• Problema a resolver• Quiero integrar mi aplicación y debo autenticarme con un servicio de

terceros

Page 16: GAM GeneXus Access Manager

Autenticación externa

• Autenticación Facebook, Twitter, Google• http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?21755

• Autenticación por web services SOAP• http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?16512

• Autenticación «custom»• http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?21751

Page 17: GAM GeneXus Access Manager

Autenticación Externa Google

• 1º definir una aplicación cliente en el sitio de Google.

GAM Google Authentication Type:http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?20020

Page 18: GAM GeneXus Access Manager

Autenticación Externa Google

• Definir Google Authentication Type.

Page 19: GAM GeneXus Access Manager

Autenticación externa: WS SOAP• El servicio tiene que cumplir un formato de respuesta pre-

establecido.• http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?16512

Page 20: GAM GeneXus Access Manager

Autenticación externa: Custom• Proc GeneXus (.class, .dll, .rb) o Clase externa (no GeneXus)

• http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?21751

Page 21: GAM GeneXus Access Manager

Conversión del mecanismo tradicional de seguridad al GAM

• Problema a resolver• Debo asociar los usuarios del GAM con los usuarios de la BD de mi

aplicación: ExternalId• Extender los atributos de los usuarios: Atributos dinámicos de la tabla de

usuarios.

http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?16552

Page 22: GAM GeneXus Access Manager

Delegar Autorización

• Corporaciones con servidores de autorización

Authorization ServerWEB APPLICATION

DB GAM

GAM API

GET/POST/AJAX

Page 23: GAM GeneXus Access Manager

Autorización delegada

• Autorización delegada del GAM:• http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?22898

Page 24: GAM GeneXus Access Manager

Deploy de aplicaciones con GAM

• Deploy de los binarios• Deploy de los datos• Hardening de la configuración del repositorio

Page 25: GAM GeneXus Access Manager

Deploy de aplicaciones con GAM

• Binarios• Librerias del GAM• Connection.gam• Application.gam

http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?21219

• Datos• GAM deploy Tool

http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?18608

Page 26: GAM GeneXus Access Manager

Puesta en producciónHardening

• Crear nuevas Repository Connections• Verificar el código de "GAMExampleRecoverPassword”• User Recovery Password Key Timeout (minutes)• Minimum Amount Of Characters In Login• Login Attempts To Lock User• Period change password (days)• Maximum Password History Entries

• http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?18574

Page 27: GAM GeneXus Access Manager

Escenarios con múltiples repositorios

• Aplicación multitenant• http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?18710

• Aplicación en diferentes “sucursales”• http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?18709

• http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?18682