gam genexus access manager

Post on 20-May-2015

2.805 Views

Category:

Documents

5 Downloads

Preview:

Click to see full reader

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

GeneXus Access Manager

Artech Diciembre 2013

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

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

GAM

• Solución de seguridad integrada en GeneXus

• Autenticación y Autorización

• Seguridad en aplicaciones WEB y Smart Devices

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

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

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

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

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

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

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

Ejemplo de uso de la API del GAM

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

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

Integración de aplicaciones con GAM

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

terceros

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

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

Autenticación Externa Google

• Definir Google Authentication Type.

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

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

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

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

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

Delegar Autorización

• Corporaciones con servidores de autorización

Authorization ServerWEB APPLICATION

DB GAM

GAM API

GET/POST/AJAX

Autorización delegada

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

Deploy de aplicaciones con GAM

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

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

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

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

top related