WS-Trust en ambiente heterogéneo Taller de Sistemas de Información 3 2008 Andrea Mesa Soledad Félix Felipe Rodríguez Emiliano Martínez
Agenda Objetivos Introducción WS-Trust Casos de Estudio Escenarios implementados JEE.NET Interoperabilidad Conclusiones Trabajo Futuro
Objetivos Estudiar y entender el funcionamiento de WS-Trust Implementar escenarios en.net y JEE Interoperabilidad entre las plataformas
Introducción WS-Security define mecanismos básicos para proveer seguridad al intercambio de mensajes SOAP WS-Trust utiliza estos mecanismos y define extensiones para el intercambio de security tokens que permite la obtención y diseminación de credenciales entre distintos dominios de confianza. Para que la comunicación entre dos partes sea segura, estas deben intercambiar credenciales de seguridad (directa o indirectamente). Cada parte necesita saber si puede confiar en las credenciales de la otra parte WS-Trust define un mecanismo para la obtención, validación y renovación de security tokens.
WS-Trust WS-Trust define un modelo de confianza para servicios web (Web Services Trust Model) Basado en un proceso en el cual un servicio puede requerir que todo pedido que se le haga cumpla con un conjunto de claims En caso de que un cliente no cuente con los claims necesarios, puede contactar a un Security Token Service (STS) para solicitar los tokens necesarios. Existe una relación de confianza entre el STS y el servicio
WS-Trust Web Services Trust Model
WS-Trust La especificación define varios mecanismos para verificar relaciones de confianza entre dos partes Sin embargo, no se restringe solo a ellos, pudiendo un servicio verificar la relación de confianza con la otra parte como considere necesario Fixed Trust Roots: El más simple. El servicio mantiene un conjunto fijo de relaciones de confianza Trust hierarchies: El servicio confiara en los tokens siempre que vengan de una jerarquía de confianza que lleve a un trust root. Authentication Service: Es un servicio con el cual el servicio mantiene una relación de confianza. Cuando llega un security token, el servicio lo envía al AS el cuál enviará probablemente otro token que probará o no la autenticación
WS-Trust Security Token Service Framework El cliente envía un pedido al STS, y si las políticas de seguridad del mismo lo permiten, y se cumplen los requerimientos del mismo, el STS envía al cliente un security token. Para solicitar un security token, se utiliza el elemento <wst:requestsecuritytoken> (RST) El STS utiliza el elemento <wst:requestsecuritytokenresponse> (RSTR) para devolver el security token solicitado
WS-Trust Se definen atributos opcionales, para indicar por ejemplo el tipo de token requerido, o para que servicio aplica el security token
Casos de estudio Esquema de los participantes y las interacciones
Casos de estudio Para la implementación de los casos de estudio se utilizó un escenario base, cuyos participantes son un cliente (C), un servicio (S) y un Security Token Service (STS) Se envía al STS un UserName Token. El STS responde con un security token, en este caso un SAML El cliente envía el security token al servicio El servicio envía la respuesta al cliente
Escenario JEE Tecnologías utilizadas Servidor de aplicaciones Glassfish JDK 1.5 Web Services Stack Metro IDE Netbeans Existen también otras implementaciones, como ser Apache Axis2, JBossWS JBossWS es una implementación incompleta, pero permite acoplar Metro Metro es parte del proyecto Glassfish, la implementación OpenSource del servidor de aplicaciones de Sun
Escenario JEE Metro tiene entre sus componentes a WSIT (Web Services Interoperability Technology) WSIT es un proyecto opensource, desarrollado por Sun para el desarrollo de tecnologías mediante la utilización de web services Interoperabilidad con WCF como uno de sus objetivos principales
Escenario.NET Tecnologías utilizadas.net Framework 3.0 IDE Visual Studio 2005 Existen también otras implementaciones La más conocida es Web Services Enhacements (WSE) WSE surge como un add-on al framework.net En principio implementaba solamente WS-Security, extendiéndose luego hasta llegar a la versión 3.0 actualmente
Problemas detectados Certificados en Glassfish Usuarios en Glassfish Bugs del Netbeans Visualización del intercambio de mensajes entre los participantes
Interoperabilidad Se plantearon 3 escenarios: Cliente Metro STS WCF Servicio WCF Cliente WCF STS Metro Servicio Metro Cliente Metro STS Metro Servicio WCF
Interoperabilidad No se pudo lograr interoperar en ninguno de los tres escenarios Debido a la poca documentación práctica Inexperiencia en el uso de las herramientas y en las muchas áreas que se abarcan
Conclusiones Se lograron implementar con éxito escenarios homogéneos Sin embargo no se logró la interoperabilidad de los mismos Abundancia de información teórica, pero poca de práctica, sobre todo a la hora de solucionar problemas de interoperabilidad Muchísima documentación y especificaciones que entender para entender una en particular Conocimientos en otras áreas que no se tenían
Trabajo futuro WS-Trust define otras herramientas que no fueron consideradas para este trabajo Renovación y validación de tokens Negotiation and Challenge Extensions WS-Trust, junto a WS-Security y a WS- SecurityPolicy son las bases para WS- Federation WS-SecureConversation también complementa a lo definido por WS-Trust
DEMO
Preguntas?