La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

WSE 2.0 (.NET Web Services Enhancements) César de la Torre Software Architect [Microsoft MVP – XML WebServices] [MCSE] [MCT] Renacimiento www.renacimiento.com.

Presentaciones similares


Presentación del tema: "WSE 2.0 (.NET Web Services Enhancements) César de la Torre Software Architect [Microsoft MVP – XML WebServices] [MCSE] [MCT] Renacimiento www.renacimiento.com."— Transcripción de la presentación:

1 WSE 2.0 (.NET Web Services Enhancements) César de la Torre Software Architect [Microsoft MVP – XML WebServices] [MCSE] [MCT] Renacimiento

2 Agenda Arquitecturas SOA (Service Oriented Architectures) Arquitecturas SOA (Service Oriented Architectures) XML Web Services básicos XML Web Services básicos Introducción a WSE 2.0 Introducción a WSE 2.0 Arquitectura-Módulos de WSE 2.0 Arquitectura-Módulos de WSE 2.0 WSE Security WSE Security WSE 2.0 – Messaging y Addressing WSE 2.0 – Messaging y Addressing WSE Policy WSE Policy

3 Como era antes Maquina A RPC (TCP) Máquina B RPC NDR RegistryRegistry IDL proxy IDL stub inspección máquina B 1 2 Protocolo de Comunicación Formato de Mensaje Descripción del lenguaje 3 Mecanismo de Descubrimiento IDL 3 petición respuesta

4 Arquitecturas distribuidas Antes Sin estándares universales no hay interoperabilidad Sin estándares universales no hay interoperabilidad Múltiples tecnologías para hacer lo mismo Múltiples tecnologías para hacer lo mismo No interoperables entre sí No interoperables entre sí Ligados a una plataforma Ligados a una plataforma DCOMCORBA RPCIIOP NDRCDR IDLOMG IDL RPC Protocol Message Format Description Windows RegistryNaming ServiceDiscovery Java RMI IIOP or JRMP Java Ser. Format Java RMI Registry or JNDI

5 Arquitecturas distribuidas Ahora Los usuarios no quieren cerrarse a una plataforma Los usuarios no quieren cerrarse a una plataforma Es necesaria una arquitectura sin premisas e independiente… Es necesaria una arquitectura sin premisas e independiente… De la plataforma De la plataforma Del lenguaje Del lenguaje De los objetos De los objetos De los mecanismos de llamada De los mecanismos de llamada Bienvenido a SOA… Bienvenido a SOA… Service Oriented Arquitecture Service Oriented Arquitecture

6 Arquitecturas distribuidas SOA SOA ve el mundo de una forma distinta SOA ve el mundo de una forma distinta Servicios autónomos Servicios autónomos Fronteras explícitas, asumir heterogeneidad Fronteras explícitas, asumir heterogeneidad Plataformas dispares Plataformas dispares Integración basada en mensajes XML Integración basada en mensajes XML Se comparte el esquema, no la clase Se comparte el esquema, no la clase

7 Arquitecturas distribuidas SOA y Servicios Web Los Servicios-Web son la clave de SOA Los Servicios-Web son la clave de SOA Redefinición de las tecnologías distribuidas basada en XML Redefinición de las tecnologías distribuidas basada en XML Comunicación vía protocolos de Internet Comunicación vía protocolos de Internet HTTP, SMTP, FTP… HTTP, SMTP, FTP… SOAP como formato de mensaje SOAP como formato de mensaje WSDL como definición de servicios WSDL como definición de servicios UDDI como localizador de Servicios-Web UDDI como localizador de Servicios-Web

8 XML Namespaces Servicios Web Básicos (WS-I) XSD SOAP WSDL UDDI Sistema de tipos Portable Mensajes Serializados Protocolo de mensajes Descripción de WS Registro de WS Protocolos Lenguajes de Descripción Mecanismos de Descubrimiento Ver ws-i.org para mas detalles

9 Definición de Servicio Web Una aplicación o servicio que… Una aplicación o servicio que… Se comunica mediante protocolos abiertos de Internet (como HTTP, SMTP, etc.) Se comunica mediante protocolos abiertos de Internet (como HTTP, SMTP, etc.) Procesa mensajes XML con SOAP Procesa mensajes XML con SOAP Describe los mensajes utilizando Esquemas XML Describe los mensajes utilizando Esquemas XML Proporciona un interfaz de descripción con WSDL Proporciona un interfaz de descripción con WSDL Puede descubrirse mediante UDDI Puede descubrirse mediante UDDI Servicio Web XML

10 Servicios Web Protocolos Servicios publicados Registro UDDI AplicaciónClienteAplicaciónCliente Descubrimiento mediante UDDI Servicio 1 Servicio Servicio Web Invocación/Acceso mediante SOAP Transporte mediante HTTP / SMTP / WAP MensajeSOAPMensajeSOAP Publicación mediante UDDI Descripción mediante WSDL XMLSchemaWSDLXMLSchemaWSDL

11 Implementación.NET WS-I Web-Methods.ASMX ASP.NET (Web-Methods ASMX) permite exponer clases.NET como servicios web ASP.NET (Web-Methods ASMX) permite exponer clases.NET como servicios web Atributos [WebService], [WebMethod] Atributos [WebService], [WebMethod] Traduce peticiones SOAP Traduce peticiones SOAP Genera automáticamente WSDL Genera automáticamente WSDL Acceso a toda la funcionalidad ASP.NET Acceso a toda la funcionalidad ASP.NET Sesión Sesión Seguridad Seguridad Extensiones, etc. Extensiones, etc.

12 Implementación.NET Consumo de servicios web Herramienta WSDL.exe Herramienta WSDL.exe Genera un proxy a partir de un WSDL Genera un proxy a partir de un WSDL Llamada por add reference en VS.NET Llamada por add reference en VS.NET Clase proxy derivada de SoapHttpClientProtocol Clase proxy derivada de SoapHttpClientProtocol Con métodos semejantes al Web Service Con métodos semejantes al Web Service Métodos comunes Métodos comunes Autentificación Autentificación Llamadas asíncronas Llamadas asíncronas

13 Servicios Web básicos con.NET

14 ¿Son suficientes los WS Básicos? Los WS básicos (XSD, SOAP, WSDL, UDDI) consiguen una comunicación básica Los WS básicos (XSD, SOAP, WSDL, UDDI) consiguen una comunicación básica Proporcionan intercambio básico de mensajes XML Proporcionan intercambio básico de mensajes XML Interconexión de sistemas heterogéneos Interconexión de sistemas heterogéneos La compartición de esquemas permite mayores abstracciones La compartición de esquemas permite mayores abstracciones PERO, la mayoría de las aplicaciones distribuidas necesitan MAS… PERO, la mayoría de las aplicaciones distribuidas necesitan MAS…

15 Temas Pendientes Abiertos Los Sevicios-Web tienen muchas necesidades comunes Los Sevicios-Web tienen muchas necesidades comunes Modelo de seguridad orientado a mensajes Modelo de seguridad orientado a mensajes Mensajería estable y confiable Mensajería estable y confiable Soporte de Transacciones (entre WS) Soporte de Transacciones (entre WS) Mecanismos de Direccionamiento y Ruteo Mecanismos de Direccionamiento y Ruteo Mensajería Asíncrona Mensajería Asíncrona Metadatos para Políticas de WS Metadatos para Políticas de WS Soporte para datos binarios Soporte para datos binarios

16 SOAP Framework SOAP proporciona un marco de trabajo para gestionar aspectos nuevos SOAP proporciona un marco de trabajo para gestionar aspectos nuevos Header/Body permiten extensibilidad Header/Body permiten extensibilidad xmlns:soap="...">

17 Extensibilidad de SOAP SOAP no define cabeceras por si mismo SOAP no define cabeceras por si mismo Las Cabeceras reconocidas son las que permiten a las app. negociar Las Cabeceras reconocidas son las que permiten a las app. negociar HTTP usa cabeceras para negociar servicios HTTP usa cabeceras para negociar servicios WS-* (nuevas ESPECIFICACIONES WS) extiende SOAP con cabeceras estandard WS-* (nuevas ESPECIFICACIONES WS) extiende SOAP con cabeceras estandard Ahora necesitamos las implementaciones de diferentes fabricantes (MS, etc.) Ahora necesitamos las implementaciones de diferentes fabricantes (MS, etc.)

18 WS-* Son las ESPECIFICACIONES ESTANDARD que están siendo definidas por múltiples fabricantes - Microsoft, IBM, HP, Fujitsu, BEA, VeriSign, SUN, Oracle, CA, Nokia, CommerceOne, Documentum, TIBCO, etc. Especificaciones disponibles en:

19 La nueva Pila de Protocolos WS-* Microsoft junto con otros partners está desarrollando su implementación de la pila de protocolos WS-* Microsoft junto con otros partners está desarrollando su implementación de la pila de protocolos WS-* Cubrirá la mayoría de dichos estándares todavía pendientes Cubrirá la mayoría de dichos estándares todavía pendientes Desarrollados sobre SOAP, de forma neutral Desarrollados sobre SOAP, de forma neutral Ofrece mensajes seguros, confiables y en el futuro transaccionales Ofrece mensajes seguros, confiables y en el futuro transaccionales

20 WS-* Pila de Protocolos PlataformaBase Aplicaciones e Inraestructura de Aplicaciones Transportes Aplicaciones Conectadas Gestión Procesos de Negocio … SeguridadConfiabilidadTransacciones Mensajería XML Metadatos HTTPTCPSMTP …

21 WS-* Especificaciones (Resumen) Messaging Messaging WS-Addressing WS-Addressing WS-Eventing WS-Eventing MTOM (Attachments) MTOM (Attachments) Reliability Reliability WS-ReliableMessaging WS-ReliableMessaging Security Security WS-Security WS-Security WS-Trust WS-Trust WS-SecureConversation WS-SecureConversation WS-Federation WS-Federation Transactions Transactions WS-Coordination WS-Coordination WS-AtomicTransaction WS-AtomicTransaction WS-BusinessActivity WS-BusinessActivity Metadata Metadata WS-Policy WS-Policy WS-PolicyAssertions WS-PolicyAssertions WS-PolicyAttachment WS-PolicyAttachment WS-SecurityPolicy WS-SecurityPolicy WS-Discovery WS-Discovery WS-MetadataExchange WS-MetadataExchange

22 Plataformas Servicios Web.NET ASMX es la plataforma actual de WS en.NET ASMX es la plataforma actual de WS en.NET Soporta funciones básicas para servicios sencillos Soporta funciones básicas para servicios sencillos No implementa las especificaciones WS-* No implementa las especificaciones WS-* WSE 2.0 es una extensión de la plataforma actual WSE 2.0 es una extensión de la plataforma actual Puede utilizarse para extender el comportamiento de ASMX Puede utilizarse para extender el comportamiento de ASMX Puede utilizarse de forma separada sin ASMX Puede utilizarse de forma separada sin ASMX Implementa agunas de las especific. WS-* Implementa agunas de las especific. WS-* Indigo es la siguiente generación de plataforma de WebServices Indigo es la siguiente generación de plataforma de WebServices Proporcionará una solución completa WS-* Proporcionará una solución completa WS-*

23 ¿Donde estamos? Un Servicio-Web es accesible mediante protocolos abiertos Un Servicio-Web es accesible mediante protocolos abiertos XML es un formato de representación de datos XML es un formato de representación de datos SOAP es un marco de trabajo XML para mensajería SOAP es un marco de trabajo XML para mensajería Un esquema XML describe mensajes XML Un esquema XML describe mensajes XML WSDL describe como invocar los WS WSDL describe como invocar los WS UDDI es un repositorio de descripciones de WS UDDI es un repositorio de descripciones de WS WS-* extiende SOAP con cabeceras estandar WS-* extiende SOAP con cabeceras estandar

24 Introducción a WSE 2.0 (Web Services Extensions 2.0)

25 Arquitectura Futura de WS Roadmap Seguridad Mensajería confiable Transacciones Mensajería XML Metadatos Transportes Aplicaciones Conectadas

26 Siguiente generación de Plataforma WS Las plataformas de Servicios-Web tienen que evolucionar para cubrir los nuevos estándares (WS-*) Las plataformas de Servicios-Web tienen que evolucionar para cubrir los nuevos estándares (WS-*) Seguridad, confiabilidad, mensajes transaccionales Seguridad, confiabilidad, mensajes transaccionales Inicialmente, ¿Como extendemos ASMX para conseguir esto? Inicialmente, ¿Como extendemos ASMX para conseguir esto?

27 SoapExtension Framework ASMX proporciona un framework para la extensibilidad ASMX proporciona un framework para la extensibilidad Puedes desarrollar una clase que será invocada: Puedes desarrollar una clase que será invocada: Antes y después del procesamiento del mensaje SOAP Antes y después del procesamiento del mensaje SOAP

28 Niveles de SoapExtension SOAP extension en cada nivel SOAP extension en cada nivel ASMX Handler Clase ServicioWeb [WebMethod] public int sumar int x, int y) int x, int y){ return x+y; return x+y;} XmlSerializer Invocación a Extension (1) Invocacíón a Extensión (2) Invocación a Extensión (3) Invocación a Extensión (4)

29 Clases de SOAP Extension Una clase que derive de SoapExtension Una clase que derive de SoapExtension public class ExtensionDeValidacion : SoapExtension { public override object GetInitializer(Type serviceType) { public override object GetInitializer(Type serviceType) { // Inicialización estática nivel de de clase // Inicialización estática nivel de de clase } public override object GetInitializer( public override object GetInitializer( LogicalMethodInfo methodInfo, SoapExtensionAttribute attribute) { LogicalMethodInfo methodInfo, SoapExtensionAttribute attribute) { // Inicialización estática a nivel de metodo // Inicialización estática a nivel de metodo } public override void Initialize(object initializer) { public override void Initialize(object initializer) { // Inicialización por instancia // Inicialización por instancia } public override void ProcessMessage(SoapMessage message) { public override void ProcessMessage(SoapMessage message) { // realiza pre/post-procesamiento justo antes/despues // realiza pre/post-procesamiento justo antes/despues // de la deserialización/serialización del mensaje // de la deserialización/serialización del mensaje }}

30 Configuración de una Extensión SOAP La Clase Extensión puede asociarse con todos los WebMethods de un WS La Clase Extensión puede asociarse con todos los WebMethods de un WS La Extension class se especifica en el web.config La Extension class se especifica en el web.config Es llamada por cada WebMethod del WS Es llamada por cada WebMethod del WS La Clase Extensión puede asociarse con un WebMethod específico La Clase Extensión puede asociarse con un WebMethod específico Los métodos marcados con un atributo especial que especifique la Clase Extensión Los métodos marcados con un atributo especial que especifique la Clase Extensión La Clase Extensión es llamada solamente para dicho WebMethod La Clase Extensión es llamada solamente para dicho WebMethod

31 Configuración de una Extensión SOAP Para cada WebMethod del WS Para cada WebMethod del WS priority="1" group="0" />

32 ¿Dónde estamos? OK, por ahora sabemos que podríamos extender los Servicios Web.ASMX de.NET 1.1 mediante la Clase SoapExtension OK, por ahora sabemos que podríamos extender los Servicios Web.ASMX de.NET 1.1 mediante la Clase SoapExtension Y… Así se ha extendido con WSE 2.0 Y… Así se ha extendido con WSE 2.0 Pero, ¿qué es exactamente Microsoft WSE 2.0? Pero, ¿qué es exactamente Microsoft WSE 2.0?

33 WSE 2.0 (Microsoft Web Services Enhancements) ¿Qué es? Extensión de los Servicios Web de.NET 1.1. Extensión de los Servicios Web de.NET 1.1. Implementa varias especificaciones WS-* Implementa varias especificaciones WS-* Plenamente soportado Plenamente soportado Pero implementa especificaciones en borrador Pero implementa especificaciones en borrador Integrado con Visual Studio 2003 Integrado con Visual Studio 2003 Descargable gratuitamente en

34 A nivel lógico es parte de.NET Framework, pero se le mantiene separado mientras estos estándares estén evolucionando A nivel lógico es parte de.NET Framework, pero se le mantiene separado mientras estos estándares estén evolucionando Soportado por 2+1 años Soportado por 2+1 años Está planificado aprox. un release al año Está planificado aprox. un release al año Versión 1 liberado en Dic 2002 (SP en Marzo 2003) Versión 1 liberado en Dic 2002 (SP en Marzo 2003) Versión 2 Versión 2 Tech.Preview liberado 16 Jul 2003 Tech.Preview liberado 16 Jul 2003 SP1 Liberado 12 Marzo 2004 SP1 Liberado 12 Marzo 2004 SP2 Liberado 3 Diciembre 2004 SP2 Liberado 3 Diciembre 2004 Beneficios Beneficios Permite a early-adopters usar los últimos estándares Permite a early-adopters usar los últimos estándares Permite a MS obtener feedback del mundo real Permite a MS obtener feedback del mundo real WSE 2.0 (Web Services Enhancements)

35 WSE 2.0 ¿Cómo es internamente? ¿Cómo es internamente? 1.- Proporciona una Extensión SOAP para usarla con los WebMethods 1.- Proporciona una Extensión SOAP para usarla con los WebMethods 2.- También Se puede emplear sin apoyarse en.ASMX (p.e. con Messaging- TCP ó Mesaging in-process) 2.- También Se puede emplear sin apoyarse en.ASMX (p.e. con Messaging- TCP ó Mesaging in-process)

36 ¿Por qué usar hoy WSE 2.0? Las aplicaciones reales de negocio tienen muchos requerimientos que los WS básicos carecen. Hay dos opciones: Las aplicaciones reales de negocio tienen muchos requerimientos que los WS básicos carecen. Hay dos opciones: Desarrollar mis propias extensiones desde cero Desarrollar mis propias extensiones desde cero Aprovechar WSE 2.0 Aprovechar WSE 2.0 Es posible que.NET Remoting se descontinúe con la aparición de INDIGO Es posible que.NET Remoting se descontinúe con la aparición de INDIGO Ir trabajando con tecnologías de futuro Ir trabajando con tecnologías de futuro

37 Módulos de Arquitectura WS-* implementados en WSE 2.0 Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Mensajería Confiable Transacciones Mensajería XML Metadatos Seguridad Mensajería

38 Soporte en WSE 2.0 de especificaciones WS-* Messaging Messaging WS-Messaging WS-Messaging WS-Addressing WS-Addressing WS-Eventing WS-Eventing MTOM (Attachments) MTOM (Attachments) Reliability Reliability WS-ReliableMessaging WS-ReliableMessaging Security Security WS-Security WS-Security WS-Trust WS-Trust WS-SecureConversation WS-SecureConversation WS-Federation WS-Federation Transactions Transactions WS-Coordination WS-Coordination WS-AtomicTransaction WS-AtomicTransaction WS-BusinessActivity WS-BusinessActivity Metadata Metadata WS-Policy WS-Policy WS-PolicyAssertions WS-PolicyAssertions WS-PolicyAttachment WS-PolicyAttachment WS-SecurityPolicy WS-SecurityPolicy WS-Discovery WS-Discovery WS-MetadataExchange WS-MetadataExchange * (Implementado en WSE 2.0)

39 Módulos de Arquitectura Seguridad Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Transactions Messaging XML Metadata WSE 2.0 soporta WS-Security WSE 2.0 soporta WS-Security Autenticación (UsernameToken, X.509, Kerb) Autenticación (UsernameToken, X.509, Kerb) Integridad (Firma mensajes XML) Integridad (Firma mensajes XML) Privacidad (Encriptación mensajes XML) Privacidad (Encriptación mensajes XML) WSE 2.0 soporta WS-Trust y WSE 2.0 soporta WS-Trust yWS-SecureConversation Usa tokens de contexto de seguridad Usa tokens de contexto de seguridad Automatiza conversaciones seguras Automatiza conversaciones seguras WSE 2.0 soporta seguridad basada en roles WSE 2.0 soporta seguridad basada en roles IPrincipal, IsInRole, etc. IPrincipal, IsInRole, etc.

40 WS-Messaging WS-Messaging Mensajería independiente del protocolo (Por ahora TCP, HTTP e InProc) Mensajería independiente del protocolo (Por ahora TCP, HTTP e InProc) WS-Addressing WS-Addressing Ruteo de mensajes Ruteo de mensajes Especificados con WS-Referral Especificados con WS-Referral Permite routing según contenido Permite routing según contenido WS-Attachments Ahora MTOM WS-Attachments Ahora MTOM Ficheros binarios adjuntos Ficheros binarios adjuntos Módulos de Arquitectura Mensajería Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Seguridad Mensajería Confiable Transacciones Mensajería XML Metadatos

41 WSE - Arquitectura Metadatos Interfaz y Descripción Interfaz y Descripción WSDL and XSD WSDL and XSD WS-Policy (Políticas) WS-Policy (Políticas) Módulo para hacer comprobaciones sobre requerimientos de servicios, capacidades, etc. Módulo para hacer comprobaciones sobre requerimientos de servicios, capacidades, etc. Descubrimiento Descubrimiento Consultas a directorios centrales (UDDI) Consultas a directorios centrales (UDDI) Inspección de un recurso para obtener metadatos Inspección de un recurso para obtener metadatos(WS-MetadataExchange) Anuncio y descubrimiento dinámico de recursos (WS-Discovery) Anuncio y descubrimiento dinámico de recursos (WS-Discovery) Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Transactions Messaging XML Metadata

42 WSE - Arquitectura Metadatos Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Transactions Messaging XML Metadata WSE 2.0 soporta WS-Policy WSE 2.0 soporta WS-Policy Una Política es un fichero de configuración que especifica requerimientos para los mensajes XMl Una Política es un fichero de configuración que especifica requerimientos para los mensajes XMl Tambien soporta WS-PolicyAssertion y WS-SecurityPolicy Tambien soporta WS-PolicyAssertion y WS-SecurityPolicy WSE 2.0 soporta políticas de comprobaciones propias WSE 2.0 soporta políticas de comprobaciones propias

43 Extensibilidad y Evolución Seguridad, Confiabilidad, Transaccionalidad Base para WS Especificaciones WS-* WS-ReliableMessaging Reliability WS-I formed Interoperability WS-I BP 1.0 Security Roadmap Whitepapers Reliable Messaging Roadmap SRT Web Services Whitepaper WS-Security WS-Trust Security WS-Security Addendum WS-Security Profile for Tokens WS-Security Addendum WS-Security Profile for Tokens WS-Federation WS-Federation Active Requestor Profile WS-Federation WS-Federation Active Requestor Profile WS-Security SOAP Message Security WS-Security Username Token Profile WS-Security X.509 Certificate Token Profile WS-Security SOAP Message Security WS-Security Username Token Profile WS-Security X.509 Certificate Token Profile WS-Security Kerberos Binding WS-Coordination WS-Transaction WS-Coordination WS-Transaction Transactions WS-AtomicTransaction WS-BusinessActivity SOAP 1.1 Messaging SOAP Messages with Attachments SOAP Messages with Attachments WS-Referral WS-Routing WS-Referral WS-Routing DIME WS-Attachments WS-Addressing SOAP 1.2 MTOM WS-Eventing WS-Policy 1.1 WS-PolicyAttachments 1.1 WS-PolicyAssertions 1.1 WS-Policy 1.1 WS-PolicyAttachments 1.1 WS-PolicyAssertions 1.1 WS-Policy WS-PolicyAttachments WS-PolicyAssertions WS-SecurityPolicy WS-Policy WS-PolicyAttachments WS-PolicyAssertions WS-SecurityPolicy Metadata UDDI 1.0 WSDL UDDI 2.0 WS-Inspection UDDI 3.0 WS-Discovery WS-MetadataExchange WS-Discovery WS-MetadataExchange Desde 2/2004

44 Ejecución Side-By-Side de WSE 1.0 y 2.0 WSE 2.0 puede instalarse en la misma máquina que WSE 1.0 WSE 2.0 puede instalarse en la misma máquina que WSE 1.0 Utiliza un nombre diferente de assembly Utiliza un nombre diferente de assembly Utiliza un namespace diferente Utiliza un namespace diferente La misma public key token La misma public key token WSE 1.0 WSE 2.0 AssemblyMicrosoft.Web.ServicesMicrosoft.Web.Services2 NamespaceMicrosoft.Web.ServicesMicrosoft.Web.Services2 Version Public Key Token 31bf3856ad364e3531bf3856ad364e35

45 WSE 2.0 Arquitectura – Implementación WSE 2.0 necesita: WSE 2.0 necesita: Escribir cabeceras en los mensajes SOAP de salida y leer de los mensajes de entrada Escribir cabeceras en los mensajes SOAP de salida y leer de los mensajes de entrada Transformar el body de los mensajes Transformar el body de los mensajes WSE 2.0 lo implementa utilizando filtros SOAP WSE 2.0 lo implementa utilizando filtros SOAP

46 WSE 2.0 Arquitectura – Filtros

47 WSE 2.0 Desarrollo En cliente En cliente Visual Studio crea dos clases proxies en cada referencia Visual Studio crea dos clases proxies en cada referencia WSE WSE En servidor En servidor Mismo código (Depende qué WS-*) Mismo código (Depende qué WS-*) Configuración en web.config Configuración en web.config Funcionalidad adicional disponible en SoapContext Funcionalidad adicional disponible en SoapContext

48 WSE 2.0 Implementación en Servidor Integración con ASP.NET Web Services Integración con ASP.NET Web Services Uso de una SOAP extension en servidor: WebServiceExtension Uso de una SOAP extension en servidor: WebServiceExtension Configurado en la sección de web.config Configurado en la sección de web.config Comunicación entre los filtros y el código mediante la clase SoapContext Comunicación entre los filtros y el código mediante la clase SoapContext

49 Como utilizar WSE 2.0 Para comenzar a usar WSE en un WebMethod Para comenzar a usar WSE en un WebMethod 1. Añade una referencia a Microsoft.Web.Services2 2. Configura la WebServicesExtension 3. Añade sentencias using a los namespaces que necesites 4. Extiende el código del WebMethod // Clases Generales de WSE 2.0 using Microsoft.Web.Services2; // Clases de WS-Security using Microsoft.Web.Services2.Security;...

50 Configuración en web.config priority="1" group="0" />

51 Uso de SoapContext Dentro de un WebMethod, la info. De WSE está disponible via la clase SoapContext Dentro de un WebMethod, la info. De WSE está disponible via la clase SoapContext [WebService(Namespace="http://example.org/wse/")] public class Endpoint1 : WebService { [WebMethod] [WebMethod] public string MiWebMehod() public string MiWebMehod() { SoapContext reqCtx = RequestSoapContext.Current; SoapContext reqCtx = RequestSoapContext.Current; SoapContext resCtx = ResponseSoapContext.Current; SoapContext resCtx = ResponseSoapContext.Current;... // usa Soapcontext para acceder a las x... // usa Soapcontext para acceder a las x // implementaciones de WSE 1.0 y 2.0 // implementaciones de WSE 1.0 y 2.0 }}

52 Uso de WSE en el Cliente (1) Nueva clase base proxy: WebServiceClientProtocol Nueva clase base proxy: WebServiceClientProtocol Extiende SoapHttpClientProtocol Extiende SoapHttpClientProtocol Se comunica usando SoapWebRequest y SoapWebResponse de System.Net Se comunica usando SoapWebRequest y SoapWebResponse de System.Net Comunicación entre filtros y código mediante la clase SoapContext Comunicación entre filtros y código mediante la clase SoapContext Se utiliza para pasar/recibir info. desde/hacia los filtros Se utiliza para pasar/recibir info. desde/hacia los filtros Expuesta mediante las propiedades RequestSoapContext y ResponseSoapContext Expuesta mediante las propiedades RequestSoapContext y ResponseSoapContext

53 Uso de WSE en el Cliente (2) Los clientes wsdl.exe pueden utilizar WSE Los clientes wsdl.exe pueden utilizar WSE Cambia la clase base a WebServicesClientProtocol Cambia la clase base a WebServicesClientProtocol // Proxy wsdl.exe generado... public class Servicio1 : // Cambia manualmente la clase de la que deriva // Cambia manualmente la clase de la que deriva Microsoft.Web.Services2.WebServicesClientProtocol { Microsoft.Web.Services2.WebServicesClientProtocol { Servicio1 srv = new Servicio1(); SoapContext reqCtx = srv.RequestSoapContext; SoapContext resCtx = srv.ResponseSoapContext;... // usa Soapcontext para acceder a las // implementaciones WS-* // implementaciones WS-*

54 Configuración adicional de WSE WSE se configura mediante una nueva config section (microsoft.web.services2) WSE se configura mediante una nueva config section (microsoft.web.services2)

PublicKeyToken=31bf3856ad364e35" />......

55 microsoft.web.services La Config section se usa para configurar La Config section se usa para configurar Caract. de Seguridad Caract. de Seguridad Caract. de Políticas Caract. de Políticas Caract. de Ruteo Caract. de Ruteo Caract. de Diagnostico Caract. de Diagnostico Caract. de Filtros Caract. de Filtros

56 Integración con Visual Studio.NET WSE 2.0 proporciona integración con Visual Studio.NET WSE 2.0 proporciona integración con Visual Studio.NET Elije Visual Studio Tools en la instalación de WSE 2.0 Elije Visual Studio Tools en la instalación de WSE 2.0 Haz clic con botón derecho en un proyecto y selecciona WSE 2 Settings Haz clic con botón derecho en un proyecto y selecciona WSE 2 Settings La Utilidad Settings tool automatiza las configuraciones (en.config, etc.) La Utilidad Settings tool automatiza las configuraciones (en.config, etc.)

57 Utilidad WSE Settings Esta herramienta te permite… Esta herramienta te permite… Añadir una referencia al assembly WSE Añadir una referencia al assembly WSE Configurar la SoapExtension Configurar la SoapExtension Configurar el soporte de protocolos WS-* Configurar el soporte de protocolos WS-*

58 Integración Cliente con Visual Studio.NET Puedes habilitar WSE 2.0 en proyectos cliente mediante la utilidad settings tool Puedes habilitar WSE 2.0 en proyectos cliente mediante la utilidad settings tool Cuando añades una Web Reference, te genera dos clases proxy Cuando añades una Web Reference, te genera dos clases proxy Una que usa WSE (e.j., CalculadoraWse) Una que usa WSE (e.j., CalculadoraWse) Y otra que no (e.j., Calculadora") Y otra que no (e.j., Calculadora")

59 Trazas en WSE 2.0 WSE ofrece trazas de los mensajes WSE ofrece trazas de los mensajes Registra entradas/salidas de mensajes SOAP Registra entradas/salidas de mensajes SOAP Registra coincidencias de políticas Registra coincidencias de políticas // Habilitar tracing en app.config ó web.config output="outputtrace.xml"/>...

60 Habilitar y usar WSE 2.0 en Visual Studio 2003

61 WSE 2.0 Security (Implementacion de WS-Security, WS-Trust y WS-SecureConversation) Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Seguridad Mensajería Confiable Transacciones Mensajería XML Metadatos Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Seguridad Mensajería Confiable Transacciones Mensajería XML Metadatos

62 Necesidades Seguridad Resumen La Seguridad es crítica para los WS intra ó inter organizacionales La Seguridad es crítica para los WS intra ó inter organizacionales Necesitamos: Necesitamos: Autenticación, integridad de mensasjes, confidencialidad, confianza y privacidad Autenticación, integridad de mensasjes, confidencialidad, confianza y privacidad Federación de seguridad entre organizaciones Federación de seguridad entre organizaciones Seguridad en Servicios Web Seguridad en Servicios Web Securizar los mensajes Securizar los mensajes Soportar varias tecnologías criptográficas Soportar varias tecnologías criptográficas Conversaciones Seguras Conversaciones Seguras Securizar un intercambio contínuo de mensajes Securizar un intercambio contínuo de mensajes Confianza Confianza Extender relaciones de confianza a lo largo de los servicios distribuidos Extender relaciones de confianza a lo largo de los servicios distribuidos Federación (*) Federación (*) Unificar servicios en un dominio único de seguridad Unificar servicios en un dominio único de seguridad Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Seguridad Mensajería Confiable Transacciones Mensajería XML Metadatos

63 Agenda – WSE Security Fundamentos en Seguridad Fundamentos en Seguridad Tokens de Seguridad de Servicios Web Tokens de Seguridad de Servicios Web Autenticación Autenticación Autorización Autorización Firmas Digitales Firmas Digitales Encriptación (Cifrado) Encriptación (Cifrado) Implementación de Security Tokens Implementación de Security Tokens Creación de Contextos de Seguridad Creación de Contextos de Seguridad Definición de Políticas de Seguridad Definición de Políticas de Seguridad Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Seguridad Mensajería Confiable Transacciones Mensajería XML Metadatos

64 Seguridad Fundamentos Autenticación – ¿Quién eres? Autenticación – ¿Quién eres? Autorización – ¿Qué te está permitido hacer? Autorización – ¿Qué te está permitido hacer? Comunicación Segura Comunicación Segura Confidencialidad – ¿Puede alguien que no debe entender la comunicación? Confidencialidad – ¿Puede alguien que no debe entender la comunicación? Integridad – ¿Ha sido el mensaje modificado ilegalmente? Integridad – ¿Ha sido el mensaje modificado ilegalmente? No repudio - ¿Puedo estar seguro de que fuiste tú el que lo mandaste? No repudio - ¿Puedo estar seguro de que fuiste tú el que lo mandaste? Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Seguridad Mensajería Confiable Transacciones Mensajería XML Metadatos

65 Comunicación Segura Seguridad a nivel de protocolo Cifra toda la comunicación Cifra toda la comunicación El Emisor tiene que confiar en todos los intermediarios El Emisor tiene que confiar en todos los intermediarios Restringe los protocolos que pueden usarse (p.e. solo SSL, etc.) Restringe los protocolos que pueden usarse (p.e. solo SSL, etc.) Seguridad SSL Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Seguridad Mensajería Confiable Transacciones Mensajería XML Metadatos

66 Comunicación Segura Seguridad a nivel de Mensaje Seguridad extremo a extremo del mensaje independiente del Transporte Seguridad extremo a extremo del mensaje independiente del Transporte Soporta múltiples protocolos y múltiples tecnologías de cifrado (encriptación) Soporta múltiples protocolos y múltiples tecnologías de cifrado (encriptación) Se encripta solamente parte del mensaje Se encripta solamente parte del mensaje El emisor solamente necesita confiar en el punto final El emisor solamente necesita confiar en el punto final Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Seguridad Mensajería Confiable Transacciones Mensajería XML Metadatos

67 Seguridad a Nivel de Mensaje Credenciales Firmas Digitales Los mensajes pueden encriptarse Cliente Transporte Servicio Transporte Cualquier Transporte XML La seguridad es independiente del protocolo de transporte Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Seguridad Mensajería Confiable Transacciones Mensajería XML Metadatos

68 Tipos Básicos de Criptografía Clave Pública Clave Privada Criptografía Asimétrica Clave Privada Compartida Ventajas: Seguridad de claves muy fuerte Desventajas: Lento – Fuerte consumo CPU Ventajas: Rápido y eficiente Desventajas: Seguridad mas debil ¿Como intercambiar las claves en secreto? Criptografía Simétrica Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Seguridad Mensajería Confiable Transacciones Mensajería XML Metadatos

69 Repaso de Criptografía (Cifrado) Término Criptográfico DescripciónEncriptaciónSimétrica Cifrado y descifrado de datos con una misma clave secreta EncriptaciónAsimétrica Cifrado y descifrado de datos con una pareja de claves (pública/privada) Hashing Generación de un cifrado fijo en un único sentido (no descifrable) y practicamente único. Firma Digital Generación de Hash y cifrado del valor del hash con una clave privada

70 Py75c%bn&*) 9|fDe^bDFaq &nmdFg$5kn vMdrkvegMs Encriptación de Mensajes Emisor Simétrica Encriptación Esto es un texto confidencial, etc. Py75c%bn&*) 9|fDe^bDFaq &nmdFg$5kn vMdrkvegMs Encriptación Clave Encriptada publica Clave Pública del Receptor Clave Generada Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Seguridad Mensajería Confiable Transacciones Mensajería XML Metadatos

71 Encriptación de Mensajes Receptor Py75c%bn&*) 9|fDe^bDFaq &nmdFg$5kn vMdrkvegMs Descifrado Clave Encriptada privada Clave Privada del Receptor Simétrica Esto es un texto confidenc ial, etc. Descifrado Py75c%bn&*) 9|fDe^bDFaq &nmdFg$5kn vMdrkvegMs Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Seguridad Mensajería Confiable Transacciones Mensajería XML Metadatos

72 Creación de una Firma Digital Función Hash (SHA, MD5) Jrf843kjfgf* £$&Hdif*7o HDFHSD(** Py75c%bn&*)9|fDe^b mdFg$5knvMdrkveg Ms Esto es un textoconfidencial CifradoAsimétrico Mensaje o Fichero Firma Digital Mensaje Digest de 128 bits privada

73 Verificación de una Firma Digital Jrf843kjf gf*£$&Hd if*7oUsd FHSD(** Py75c%bn&*) 9|fDe^bDFaq &nmdFg$5kn vMdrkvegMs DescifradoAsimétrico Firma Digital WSE proporciona Seguridad a Los WS Misma función Hash Mensaje Original Py75c%bn&*) 9|fDe^bDFaq &nmdFg$5kn vMdrkvegMs ? == ? ¿Son iguales los hash? publica Mandado con el mensaje

74 Tokens de Seguridad Los Tokens aseguran reclamaciones sobre identidad, capacidad y privilegios Los Tokens aseguran reclamaciones sobre identidad, capacidad y privilegios Firmado … X.509 Kerberos ClaveSecreta/Compartida Password Prueba De Posesión ContextoSeguridad Sin Firmar … Nombre Usuario SAML XrML Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Seguridad Mensajería Confiable Transacciones Mensajería XML Metadatos

75 Autenticación con Tokens Los Tokens están respaldados por una prueba de posesión Los Tokens están respaldados por una prueba de posesión Secreto compartido (password, clave simétrica) Secreto compartido (password, clave simétrica) Clave privada firmada por un servicio de una tercera parte en la que se confía (CA) Clave privada firmada por un servicio de una tercera parte en la que se confía (CA) La Autenticación requiere comprobar este conocimiento La Autenticación requiere comprobar este conocimiento Validar token de nombre-usuario y pwd Validar token de nombre-usuario y pwd Verificar la firma digital Verificar la firma digital Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Seguridad Mensajería Confiable Transacciones Mensajería XML Metadatos

76 Token Nombre-Usuario Método mas simple Método mas simple La password se utiliza para generar una clave secreta que firme y encripte La password se utiliza para generar una clave secreta que firme y encripte La Password se puede mandar como texto-plano o digest (hash) La Password se puede mandar como texto-plano o digest (hash) WSE también proporciona un mecanismo de detección de reintentos WSE también proporciona un mecanismo de detección de reintentos WSE crea automaticamente un Windows Principal para cada token con password en texto plano WSE crea automaticamente un Windows Principal para cada token con password en texto plano Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Seguridad Mensajería Confiable Transacciones Mensajería XML Metadatos

77 Autenticación con Token de Nombre-Usuario de Windows Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Seguridad Mensajería Confiable Transacciones Mensajería XML Metadatos

78 Autenticación en Servicios Web Tokens Nombre-Usuario Custom Crear una clase que derive de la clase UsernameTokenManager Crear una clase que derive de la clase UsernameTokenManager (*) Comprobar las credenciales del usuario con las del repositorio, devolver password (*) Comprobar las credenciales del usuario con las del repositorio, devolver password Devolver la lista de roles Devolver la lista de roles Crear un objeto custom IPrincipal con roles Crear un objeto custom IPrincipal con roles Adjuntar IPrincipal al token.Principal para usar seguridad imperativa y basada en políticas Adjuntar IPrincipal al token.Principal para usar seguridad imperativa y basada en políticas Registrar el TokenManager via web.config Registrar el TokenManager via web.config

79 Autenticación con Token de Nombre-Usuario custom Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Seguridad Mensajería Confiable Transacciones Mensajería XML Metadatos

80 Autorización con Tokens Principals y Roles WSE usa SecurityToken.Principal para realizar una autorización WSE usa SecurityToken.Principal para realizar una autorización Se establece automáticamente para un UserNameToken ó un KerberosSecurityToken Se establece automáticamente para un UserNameToken ó un KerberosSecurityToken IPrincipal IPrincipal Es la base de cualquier autorización a nivel de código y seguridad basada en roles Es la base de cualquier autorización a nivel de código y seguridad basada en roles Soporte para tipos IPrincipal custom (propios) Soporte para tipos IPrincipal custom (propios) TokenManagers puede crear y adjuntar el GenericPrincipal TokenManagers puede crear y adjuntar el GenericPrincipal Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Seguridad Mensajería Confiable Transacciones Mensajería XML Metadatos

81 Autorización Técnicas Programación Programación … if(token.Principal.IsInRole(Cajero")) { // Permite al usuario realizar la acción } … Basado en Políticas Basado en Políticas WSE soporta el uso de Politicas para Autorización basada en Roles Funciona sin tener que escribir código Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Seguridad Mensajería Confiable Transacciones Mensajería XML Metadatos

82 Autorización con Token de Nombre-Usuario de Windows perteneciendo a Roles (Grupos Windows, etc.) Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Seguridad Mensajería Confiable Transacciones Mensajería XML Metadatos

83 Tokens Binarios Tokens X.509 Proporciona una forma de codificar certificados X.509 Proporciona una forma de codificar certificados X.509 Proporcionados por una CA como Verisign, FNMT ó propia como Windows Certificate Services Proporcionados por una CA como Verisign, FNMT ó propia como Windows Certificate Services Contiene una clave pública y firma digital de una CA Contiene una clave pública y firma digital de una CA Soporta encriptación asimétrica y firma Soporta encriptación asimétrica y firma Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Seguridad Mensajería Confiable Transacciones Mensajería XML Metadatos

84 Tokens Binarios Tokens Kerberos Codifica Tickets Kerberos Codifica Tickets Kerberos Soporta firmado y cifrado usando una clave simétrica Soporta firmado y cifrado usando una clave simétrica Obtenido a partir de un Centro de Distribución Kerberos (KDC) Obtenido a partir de un Centro de Distribución Kerberos (KDC) WSE crea automaticamente el Principal WSE crea automaticamente el Principal Tokens Custom (Propios) WSE soporta custom tokens tanto binarios como XML WSE soporta custom tokens tanto binarios como XML Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Seguridad Mensajería Confiable Transacciones Mensajería XML Metadatos

85 Firmas Digitales - Integridad Las firmas requieren crear un hash de los datos y encriptar el valor del hash con una clave privada Las firmas requieren crear un hash de los datos y encriptar el valor del hash con una clave privada Se pueden firmar partes de un mensaje para asegurar integridad Se pueden firmar partes de un mensaje para asegurar integridad Para asegurarnos de que el mensaje no ha sido modificado fraudulentamente Para asegurarnos de que el mensaje no ha sido modificado fraudulentamente Para asegurarnos de que solamente el emisor ha podido mandarlo Para asegurarnos de que solamente el emisor ha podido mandarlo Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Seguridad Mensajería Confiable Transacciones Mensajería XML Metadatos

86 Encriptación de XML Privacidad Se puede encriptar partes de un mensaje para asegurar confidencialidad Se puede encriptar partes de un mensaje para asegurar confidencialidad Se reemplaza texto plano por texto- cifrado (cipher text) Se reemplaza texto plano por texto- cifrado (cipher text) Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Seguridad Mensajería Confiable Transacciones Mensajería XML Metadatos

87 Firma y Encriptación con Certificados X.509 Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Seguridad Mensajería Confiable Transacciones Mensajería XML Metadatos

88 Conversaciones Seguras WS-SecureConversation WS-SecureConversation WS-Security no es óptimo para conversaciones de larga duración ó multi-mensajes WS-Security no es óptimo para conversaciones de larga duración ó multi-mensajes Inicio de una conversación segura Inicio de una conversación segura Comenzar la conversación con WS-Security Comenzar la conversación con WS-Security Usar entoncces WS-SecureConversation para acordar claves (simétricas) específicas de conversación Usar entoncces WS-SecureConversation para acordar claves (simétricas) específicas de conversación Concepto similar al inicio de una sesión SSL Concepto similar al inicio de una sesión SSL WS-Trust WS-Trust Toda la seguridad depende de relaciones de confianza Toda la seguridad depende de relaciones de confianza WS-Trust delega relaciones de confianza a lo largo de servicios distribuidos WS-Trust delega relaciones de confianza a lo largo de servicios distribuidos Concepto Clave: Servicio de Token de Seguridad Concepto Clave: Servicio de Token de Seguridad Tipo de ServicioWeb que otorga, intercambia y valida tokens de seguridad Tipo de ServicioWeb que otorga, intercambia y valida tokens de seguridad Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Transactions Messaging XML Metadata

89 Obtención de Tokens de Seguridad WS-Trust Define un protocolo para asignar y obtener tokens de seguridad Define un protocolo para asignar y obtener tokens de seguridad Utiliza un Servicio de Tokens de Seguridad (STS) para otorgar Tokens Utiliza un Servicio de Tokens de Seguridad (STS) para otorgar Tokens Gestiona seguridad a lo largo de fronteras confiables Gestiona seguridad a lo largo de fronteras confiables El Cliente y el Servidor pueden confiar en el STS sin tener que gestionar una confianza directa El Cliente y el Servidor pueden confiar en el STS sin tener que gestionar una confianza directa STS puede gestionar el intercambio de un tipo de token de seguridad por otro STS puede gestionar el intercambio de un tipo de token de seguridad por otro

90 Otorgamiento de Token WSE WS-Trust usa dos tipos de mensajes WS-Trust usa dos tipos de mensajes Se manda un mensaje RequestSecurityToken al STS Se manda un mensaje RequestSecurityToken al STS El STS responde con un mensaje RequestSecurityTokenResponse El STS responde con un mensaje RequestSecurityTokenResponse WSE tiene soporte nativo para esas operaciones WSE tiene soporte nativo para esas operaciones También soporta la creación de un Servicio custom STS También soporta la creación de un Servicio custom STS

91 Alcance de Alcance deConfianza Obtención de Tokens de Seguridad Intercambio Tipos de Tokens Intercambio Tipos de Tokens Mapeo de Tokens Mapeo de Tokens Cliente STS (Security Token Service) Servicio 1. RST 2. RSTR 3. Mensaje

92 Creación de Contextos de Seguridad Las claves asimétricas son lentas para múltiples mensajes Las claves asimétricas son lentas para múltiples mensajes WS-SecureConversation define un token de Contexto de Seguridad (SCT ó SecurityContext token) WS-SecureConversation define un token de Contexto de Seguridad (SCT ó SecurityContext token) Basado en una clave simétrica Basado en una clave simétrica Mas rápido para múltiples llamadas Mas rápido para múltiples llamadas

93 Creación de Contextos de Seguridad El Contexto se puede establecer de diferentes formas El Contexto se puede establecer de diferentes formas Usando WS-Trust Usando WS-Trust Dejando que una parte cree el Contexto Dejando que una parte cree el Contexto Mediante Negociación Mediante Negociación WSE soporta el uso automático de Secure-Conversation WSE soporta el uso automático de Secure-Conversation Recomendado si los clientes hacen > 2 llamadas Recomendado si los clientes hacen > 2 llamadas

94 Secure-Conversation Petición del SCT SCT Otorgado al cliente Series de mensajes firmados por el SCT asignado ClienteServidor

95 Token Derivado de Seguridad El DerivedKeyToken crea una clave diferente para cada mensaje El DerivedKeyToken crea una clave diferente para cada mensaje Asegura que se utiliza una clave diferente para cada mensaje Asegura que se utiliza una clave diferente para cada mensaje Hace que un ataque de desciframiento sea mas dificil Hace que un ataque de desciframiento sea mas dificil Usarlo siempre que sea posible Usarlo siempre que sea posible

96 Uso de WS-SecureConversation con WSE

97 WSE 2.0 – Policy (Implementación de WS-Security) Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Seguridad Mensajería Confiable Transacciones Mensajería XML Metadatos Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Transactions Messaging XML Metadata

98 WSE Policy WS-Policy permite a administradores establecer requerimientos a los WS de forma declarativa WS-Policy permite a administradores establecer requerimientos a los WS de forma declarativa P.e. El mensaje debe de estar firmado por un tipo particular de token. P.e. El mensaje debe de estar firmado por un tipo particular de token. La caducidad de la política, etc. La caducidad de la política, etc. Los gestionadores (handlers) de WSE Policy pueden extenderse derivando de la clase PolicyAssertion Los gestionadores (handlers) de WSE Policy pueden extenderse derivando de la clase PolicyAssertion Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Transactions Messaging XML Metadata

99 Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Transactions Messaging XML Metadata WSE Policy Una comprobación de política representa un requerimiento individual, capacidad o preferencia Una comprobación de política representa un requerimiento individual, capacidad o preferencia Una Política es una colección de comprobaciones de Políticas Una Política es una colección de comprobaciones de Políticas Una comprobación de política se representa con un elemento XML (expresión de política) Una comprobación de política se representa con un elemento XML (expresión de política)

100 Definición de Políticas de Seguridad WS-Policy WS-Policy es una sintaxis XML para describir los requerimientos de un servicio WS-Policy es una sintaxis XML para describir los requerimientos de un servicio Más alto nivel que WSDL Más alto nivel que WSDL La Políticas pueden aplicarse en el lado de envío o de recepción La Políticas pueden aplicarse en el lado de envío o de recepción Reduce la cantidad de código a programar Reduce la cantidad de código a programar Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Transactions Messaging XML Metadata

101 Políticas WS-SecurityPolicy Describe los requerimientos de seguridad de un Servicio-Web Describe los requerimientos de seguridad de un Servicio-Web Proporciona una forma de especificar: Proporciona una forma de especificar: Tipos de Tokens soportados Tipos de Tokens soportados Requerimientos de Firma y cifrado Requerimientos de Firma y cifrado Decisiones de autorización basada en Roles Decisiones de autorización basada en Roles Requerimientos de Conversaciones seguras Requerimientos de Conversaciones seguras Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Transactions Messaging XML Metadata

102 Configuración de Políticas de Seguridad con la utilidad WSE Settings Tool

103 WSE 2.0 – Messaging (Implementacion de WS-Messaging) Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Seguridad Mensajería Confiable Transacciones Mensajería XML Metadatos Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Seguridad Mensajería Confiable Transacciones Mensajería XML Metadatos

104 WSE Messaging ASMX está ligado a HTTP, RPC, y métodos ASMX está ligado a HTTP, RPC, y métodos Hace pensar en términos de cliente/servidor Hace pensar en términos de cliente/servidor WSE 2.0 Messaging ofrece un modelo flexible WSE 2.0 Messaging ofrece un modelo flexible Basado en Mensaje - (no necesariamente en método) Basado en Mensaje - (no necesariamente en método) Permite mensajería asíncrona Permite mensajería asíncrona Patrones Propios de intercambio de mensajes (MEPs) Patrones Propios de intercambio de mensajes (MEPs) Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Seguridad Mensajería Confiable Transacciones Mensajería XML Metadatos

105 WSE 2.0 incluye un modelo de objetos de mensajería basada en SOAP WSE 2.0 incluye un modelo de objetos de mensajería basada en SOAP Independencia al protocolo de Transporte Independencia al protocolo de Transporte TCP TCP HTTP HTTP InProcess InProcess Otros protocolos a integrar… (SMTP, UDP, etc.) Otros protocolos a integrar… (SMTP, UDP, etc.) Independencia del Host Independencia del Host Aplicación Windows Aplicación Windows ASP.NET (Hosting con IIS) ASP.NET (Hosting con IIS) Servicio Windows Servicio Windows Este hosting es comparable al de.NET Remoting Este hosting es comparable al de.NET Remoting WSE Messaging Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Seguridad Mensajería Confiable Transacciones Mensajería XML Metadatos

106 Emisores y Receptores WSE permite pensar en términos de emisores y receptores WSE permite pensar en términos de emisores y receptores Algunos nodos envían mientras otros reciven mensajes Algunos nodos envían mientras otros reciven mensajes Los Roles son completamente intercambiables (p.e. Apps Peer-To-Peer) Los Roles son completamente intercambiables (p.e. Apps Peer-To-Peer) Se exponen via SoapSender y SoapReceiver Se exponen via SoapSender y SoapReceiver Emisor Receptor y EmisorReceptor Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Seguridad Mensajería Confiable Transacciones Mensajería XML Metadatos

107 Neutralidad en el Transporte WSE 2.0 hace posible mandar mensajes sobre múltiples transportes WSE 2.0 hace posible mandar mensajes sobre múltiples transportes In-proc, TCP, y HTTP (out-of-the-box) In-proc, TCP, y HTTP (out-of-the-box) Transportes custom también Transportes custom también Intermediarios SOAP Emisorinicial Receptorfinal HTTP SMTP MSMQ FTP Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Seguridad Mensajería Confiable Transacciones Mensajería XML Metadatos

108 WSE 2.0 Messaging SoapSender y SoapReceiver SoapSender y SoapReceiver Mensajes en un sentido Mensajes en un sentido Programación a bajo nivel Programación a bajo nivel SoapClient y SoapService SoapClient y SoapService Mensajes Un-Sentido y Dos-Sentidos Mensajes Un-Sentido y Dos-Sentidos Basados en SoapSender/SoapReceiver Basados en SoapSender/SoapReceiver

109 SoapReceiver SoapReceiver encapsula el proceso de recepción de un mensaje SOAP en particular SoapReceiver encapsula el proceso de recepción de un mensaje SOAP en particular public class ReceptorCalculadora : SoapReceiver { protected override void Receive(SoapEnvelope e) protected override void Receive(SoapEnvelope e) { // Implementar la Recepción aquí // Implementar la Recepción aquí }}... Uri UriReceptor = new EndpointReference( new Uri("soap.tcp://localhost/Calc")); new Uri("soap.tcp://localhost/Calc")); ReceptorCalculadora receptCalc = new ReceptorCalculadora(); SoapReceivers.Add(UriReceptor, receptCalc);... Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Seguridad Mensajería Confiable Transacciones Mensajería XML Metadatos

110 SoapSender SoapSender encapsula el proceso de envío de un mensaje SOAP a un URI SoapSender encapsula el proceso de envío de un mensaje SOAP a un URI... SoapEnvelope sobre = CrearMensajeSuma(); sobre.Context.Action = "urn:calc:sumar"; SoapSender ss = new SoapSender(new EndpointReference( EndpointReference( Uri("soap.tcp://localhost/calc"))); Uri("soap.tcp://localhost/calc")));ss.Send(sobre);... Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Seguridad Mensajería Confiable Transacciones Mensajería XML Metadatos

111 Messaging a Bajo Nivel (SoapSender y SoapReceiver) de un Patrón Emisor-Receptor de p.e. Suscripción a Valores de Bolsa

112 SoapClient y SoapService SoapClient y SoapService ofrecen abstracciones de mas alto nivel SoapClient y SoapService ofrecen abstracciones de mas alto nivel Basado en SoapSender y SoapReceiver Basado en SoapSender y SoapReceiver Petición/Respuesta automática y mensajes correlacionados Petición/Respuesta automática y mensajes correlacionados public class ServicioCalc : SoapService { [SoapMethod("urn:calc:sumar")] [SoapMethod("urn:calc:sumar")] public SoapEnvelope Add(SoapEnvelope e) public SoapEnvelope Add(SoapEnvelope e) {... // Implementación de Sumar aquí... // Implementación de Sumar aquí }......} Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Seguridad Mensajería Confiable Transacciones Mensajería XML Metadatos

113 Messaging a Alto Nivel (SoapClient y SoapService) de un Patrón Servicio- Cliente de p.e. Suscripción a Valores de Bolsa

114 WseWsdl2.exe WseWsdl2.exe genera código SoapClient a partir de definiciones WSDL WseWsdl2.exe genera código SoapClient a partir de definiciones WSDL El código generado contiene una clase que deriva de SoapClient El código generado contiene una clase que deriva de SoapClient Utilizar esta clase para enviar mensajes SOAP a receptores SOAP vía WSE 2.0 Utilizar esta clase para enviar mensajes SOAP a receptores SOAP vía WSE 2.0 Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Security Reliable Messaging Reliable Messaging Transactions Messaging Metadata XML Seguridad Mensajería Confiable Transacciones Mensajería XML Metadatos

115 Messaging a Alto Nivel (SoapClient y SoapService) con Hosting de ISS por HTTP (y con WebReference y Clase Proxy en cliente)

116 ¿Donde estamos? Microsoft's Web Services Enhancements (WSE 2.0) proporciona implementaciones de parte de WS-* para utilizarlo con.NET hoy Microsoft's Web Services Enhancements (WSE 2.0) proporciona implementaciones de parte de WS-* para utilizarlo con.NET hoy WSE 2.0 extiende el framework de WebMethods (ASMX) WSE 2.0 extiende el framework de WebMethods (ASMX) WSE 2.0 puede utilizarse sin.ASMX, p.e. con Messaging-TCP WSE 2.0 puede utilizarse sin.ASMX, p.e. con Messaging-TCP

117 Webcast teóricoWebcast teórico Talleres en ciudadesTalleres en ciudades Aplicación MSDN VideoAplicación MSDN Video Webcast práctica 18 OctubreWebcast práctica 18 Octubre Chat 28 OctubreChat 28 Octubre Código de MSDN VideoCódigo de MSDN Video CalendarioCalendario TutorialesTutoriales SeminariosSeminarios ForosForos Descuento 40% librosDescuento 40% libros Webcast teóricoWebcast teórico Talleres en ciudadesTalleres en ciudades Aplicación MSDN VideoAplicación MSDN Video Webcast práctica 18 OctubreWebcast práctica 18 Octubre Chat 28 OctubreChat 28 Octubre Código de MSDN VideoCódigo de MSDN Video CalendarioCalendario TutorialesTutoriales SeminariosSeminarios ForosForos Descuento 40% librosDescuento 40% libros SepOctNovDicEneFebMarAbrMayJun.NET y Servicios Web Desarrollo web SmartClients Visual Studio 2005 SQL Server 2005

118 César de la Torre Software Architect [MVP -.NET XML WebServices] [MCSE] [MCT] RenacimientoContacto - Consultoría - - Proyectos - - Formación SOPORTE como MVP en NEWS publicas: msnews.microsoft.com microsoft.public.es.servicios.web microsoft.public.es.servicios.web


Descargar ppt "WSE 2.0 (.NET Web Services Enhancements) César de la Torre Software Architect [Microsoft MVP – XML WebServices] [MCSE] [MCT] Renacimiento www.renacimiento.com."

Presentaciones similares


Anuncios Google