• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
GAM GeneXus Access Manager
 

GAM GeneXus Access Manager

on

  • 1,440 views

Qué abarca la seguridad de una aplicacion. GAM es una solucion de seguridad que se incorpora de manera automática en nuestras kbs. ...

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.

Statistics

Views

Total Views
1,440
Views on SlideShare
1,190
Embed Views
250

Actions

Likes
2
Downloads
41
Comments
0

5 Embeds 250

http://wiki.gxtechnical.com 139
http://wiki.genexus.com 104
https://twitter.com 4
http://webcache.googleusercontent.com 2
http://translate.googleusercontent.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Que abarca la seguridad de una aplicacion
  • GAM esunasolucion de seguridadque se incorpora de maneraautomática en nuestraskbs.Lo liberamos en la version Evolution 2, y busca resolver tantoproblemasde autenticación como de autorizacion en nuestras apliaciones WEB y Smart Devices.
  • Usando el GAM vamos a contar con un alto nivel de automatización. Esdecir, el GAM comotalnosva a permitirserdeclarativos en loquequeremoshacer. Si biencontamos con una API para programar el comportamiento de la aplicación, apunta a seraltamentedeclarativo, y a reducir el código lo mas posible, porque el código de la funcionalidadestáresueltodentro del modulo del GAM.
  • Doc: GAM AuthenticationScenarioshttp://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?15937Doc: GAM AuthenticationTypeshttp://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?16508Doc: GAM AuthorizationScenarioshttp://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?17583
  • Parahabilitar el GAM se debeir a nivel de la version de la kb y configurar la propiedad enable integrated security = true.Existeotrapropiedadcuandohabilitamos el GAM, a nivel de version, llamada Integrated Security Level quepermiteindicar el valor poromisión en cuanto a seguridad, de los objetos de la KB.Esdecir, estapropiedad se encuentra a nivel de objetotambién, y permiteindicarsi en eseobjeto se va a verificar la seguridadde maneraautomatica o no.El valor NONE de dichapropiedadindicaqueeseobjetoserápublico. El valor Authentication indicaquesólousuariosautenticadospodranejecutarlo. Si el valor de la propiedades Authorization el usuarioademás de haberseautenticadotendraqueestarautorizado para ejecutardichoobjeto.La mismapropiedad a nivel de version permiteindicar el valor pordefectoparatodos los objetos de la kb.
  • Que ocurre cuando se habilita la seguridad integrada?Lo primeroqueocurreesque se importa un xpzquecontieneobjetosexternos para acceder a la API del GAM.Tambien se importanopcionalmenteobjetosquehacenuso de esta API y conformanunaaplicacion a la cualllamamos backend del gam, queveremos mas adelante. Algunos de esosobjetostambién son ejemplos de login y de registraciónquepodremosusar en nuestraaplicación.Vamos a generar la aplicacion (hacer rebuild).Lo primeroqueocurreesque me preguntasideseocrear la base de datos del GAM y sustablas.Se crea en la KB un datastoresecundario con settings default en base al datastore principal en donde van a estarlastablas del GAM con repositorios, usuarios, roles, permisos, etcLuego de creadaslastablas se pueblanlasmismas con metadata.La metadata incluye la version del GAM, la creación de un repositorio de trabajo, un usuario de conexion y un usuario de aministración.La configuración del usuario de administración la vemos a nivel del environment.Este usuario de adminstracionsirve para facilitar la prototipacion, tener un usuario de partida con el cualempezar a trabajar.Se configurapordefecto la propiedad Login Object for WEB y Login Object for SD..Se genera el codigo de seguridad en cadaobjeto..Doc GAM ActivationProcess:http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?21973
  • Que ocurre luego de configurar estas propiedades?Funcionalmente lo que ocurre es que los objetos de la kb van a requerir seguridad, lo cual implica que cuando alguno de ellos se intente ejecutar y el usuario no este autenticado en la aplicación, automáticamente se va a desplegar para él un webpanel de login, o un SD panel de login según corresponda, y una vez que el usuario ingrese sus credenciales, automáticamente se va a redirigir al objeto donde dio la excepción.
  • Doc GAM Web Backoffice:http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?15935
  • GAM API:http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?16535
  • 1. La propiedad Integrated Security Levela nivel de los objetos se puede configurar con el valor Authorization.Un objeto que tenga Integrated Security Level = Authorization, tiene una propiedad más que es PermissionPrefix2. Por cada objeto en esta condicion se genera un permiso, al cual llamamos permiso automático, cuyo nombre se basa en la propiedad permission_prefix del objeto. Con permiso automático nos referimos a que de manera automática se realiza el chequeo de seguridad en ese objeto, el código de chequeo de seguridad lo hace el generador, es decir, esta en el código generado.3. Se generan permisos automáticos de ejecución de los objetos tanto web como SD.Y sobre los modos de las transacciones y los servicios rest.Doc GAM Authorization:http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?17918
  • Recuerden que en plataforma SD la capa de negocios se resuelve a traves de servicios RESTEs por eso que se generan permisos automáticos para las transacciones expuestas como servicios rest.
  • En algunos casos se quiere dar la posibilidad al usuario que se pueda autenticar usando un proveedor de identidades externo.Es el caso de permitir a los usuarios de nuestra aplicación autenticarse usando facebook, twitter, google, o algunwebservice externo.Autenticación Twitter, FB, Google:Lo único que hay que hacer es ir al sitio de FB, Twitter, Google, y definir alli una aplicación cliente, luego de eso se nos va a dar un client id y un clientsecret, con esa información vamos al backend del GAM y configuramos el tipo de autenticacion que corresponde.GAM ExternalAuthenticationTypehttp://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?21755
  • Vamos a ver como aplicar autenticación externa, por ejemplo con Google en nuestra aplicación (Facebook y twitter es similar).Primero se debe definir la aplicación cliente en el sitio de Google, lo cual nos va a dar como resultado un ClientID y ClientSecret provistos por Google.GAM Google AuthenticationType:http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?20020
  • Luego dese el Backend WEB vamos a crear un nuevo authenticationtypede tipo Google he ingresamos el ClientId y ClientSecret que nos proporciona Google.Con esos pasos ya tenemos configurada nuestra aplicación con autenticacion contra Google.
  • Autenticacion por WS externos SOAP:El servicio tiene que tener un formato de respuesta pre-establecido.Tenemos dos versiones soportadas. La version 2.0 da mayor flexibilidad dado que se pueden pasar y retornar mayor cantidad de parámetros del servicio.http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?16512
  • En algunos casos el proveedor de identidades externos debe manejar sesiones web, por lo cual no es posible que sea SOAP. En ese caso usamos el tipo de autenticación custom.http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?21751
  • GAMexternalAuthorization:http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?22898
  • http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?18574
  • http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?18682

GAM GeneXus Access Manager GAM GeneXus Access Manager Presentation 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. APP. DB GAM DB WEB APPLICATIO N GAM API GETRespuesta Servicios o Web page POST o Login Usuario Password Session APPLICATION SERVER
  • 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 • • Autenticación por web services SOAP • • http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?21755 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 preestablecido. • 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 GET/POST/AJAX WEB APPLIC ATION GAM API DB GAM Authorization Server
  • 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ón Hardening • • • • • • • 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?1 8574
  • 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?1 8682
  • Referencias • http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?1 4960 • http://www.genexus.com/encuentro2013/gx23materiales?es,0,,3256