¿Necesito que mis servicios sean accesibles desde internet y no sé como hacerlo?

/ / Blog, Digital Development
servicios accesibles
Alfresco Community lanza su versión 5
La participación keensoft en el Alfresco Global Virtual Hack-a-thon 2014

El desafío

Todo el mundo lleva encima un Smartphone, desde el que es capaz de ver el tiempo, las noticias, consultar los saldos de sus cuentas corrientes, jugar… Hay una explosión del acceso a aplicaciones desde dispositivos móviles. Y esto no se queda en un tema de ocio o personal, sino que las empresas ya se han dado cuenta que sus clientes, usuarios y proveedores demandan este tipo de acceso. Todo esto aparte de las necesidades de comunicación entre empresas, las aplicaciones de distintos entornos se deben hablar entre sí.

Resumiendo, los servicios IT de la empresa están saliendo fuera, y hay que cuidarlos para que esto se haga de una forma controlada y segura, ya no se trata de un simple portal donde mis clientes o proveedores se conectan para realizar alguna gestión, sino de poner en internet servicios básicos de la empresa, y que estarán accesibles desde un teléfono móvil, Tablet….

La tecnología

De unos años a esta parte la interconexión de aplicaciones ha sufrido un cambio radical. Hace 20 años, internet estaba en pañales, su uso era poco más que el correo electrónico y alguna página web. Poco a poco se fueron implementando sistemas de comunicación entre aplicaciones, aprovechando la infraestructura de comunicación que proponía internet. El principal cambio conceptual ocurre cuando aparece SOA (Service Oriented Architecture), las aplicaciones dejan de usar sistemas propietarios para comunicarse, intercambiando datos, tablas…, para pasar a compartir “servicios”. Este cambio tiene muchas implicaciones, pero las principales bajo mi punto de vista son:

  • independencia de la infraestructura que hay “por detrás”, no hago uso de una BBDD, una aplicación tipo SAP…, sino de un servicio.
  • Cambio la visión de la conexión, dejo de dar un servicio puro IT, a dar un servicio de negocio.

Este enfoque dio como resultado lo que hemos venido llamando Web Services, en un principio utilizando un protocolo llamado SOAP (Simple Object Access Protocol), utilizando XML para el intercambio de datos estructurados, y utilizando como protocolo de transporte los ya existentes (http, tcp…).

De esta manera se permitía intercambiar “mensajes” entre aplicaciones, de una forma transparente de la tecnología que los produce, y ofreciendo “servicios de negocio” no servicios IT.

Pero con la llegada del mundo móvil, todo esto se agita, SOAP es un protocolo pensado para un CPD, es “pesado”, para un dispositivo donde la capacidad de cálculo es reducida, era demasiado. Así que apareció REST, otro protocolo para Web Services, más sencillo y por lo tanto más desplegable sobre dispositivos móviles. Y los datos ya no tienen por qué ser XML, pueden ser JSON (más sencillo que XML y más próximo a Java)… La cosa se va complicando.

Encriptación, autenticación, XML, JSON, REST, SOAP…

La solución

Una de las soluciones que hay en el mercado es “Intel ExpressWay Service Gateway”. Este software permite realizar muchas de las funciones que le pediríamos a un servicio que se va a exponer públicamente. La idea es colocar esta pieza entre internet y nuestro CPD. Así no exponemos nuestros valiosos servicios directamente a internet, sino que introducimos este mediador que nos proporciona capacidades de seguridad (encriptación, autenticación y autorización), mediación y aceleración.

De este modo permite “securizar” un servicio web que ya exista en nuestra infraestructura, dotándolo de encriptación, autenticación, prevención de ataques, calidad de servicio, además de capacidades de transformación de datos entre lo que recibo desde internet y la invocación de un servicio web dentro de mi red. Así, podemos poner a disposición del público en internet un servicio SOAP que estemos prestando internamente, sin ninguna seguridad especial por el uso interno del servicio, a internet, y dotarlo de:

  • Prevención de ataques, bloqueando ataques de “SQL Injection”, “XPath Injection”, xml mal formados.
  • Encriptación/Desencriptación/firmado de mensajes mediante distintos métodos (certificados digitales, claves simétricas…)
  • Autenticación de usuarios contra distintos entornos de seguridad (LDAP, Kerberos)
  • Transformación de datos, recogiendo, por ejemplo, datos en JSON por un servicio REST, y transformarlo en una petición SOAP hacia la red interna.

Además este software se presenta en varios “sabores”; como un software que se instala en un servidor, teniendo en cuenta las especiales características de las funciones que va a realizar, como un “appliance” de HW con el Software precargado, dando así un máximo rendimiento, o como un “appliance” virtual, pudiendo desplegarse dentro del entorno de virtualización ya existente, muy indicado para entornos de prueba/desarrollo.

Más información:

http://cloudsecurity.intel.com/service-gateway

http://info.intel.com/rs/intel/images/Intel_ServiceGateway_Data_Sheet.pdf

Unidad de negocio, keensoft