La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

WSE 2.0 (.NET Web Services Enhancements)

Presentaciones similares


Presentación del tema: "WSE 2.0 (.NET Web Services Enhancements)"— 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 TechEd 2002

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

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

4 Arquitecturas distribuidas Antes
Sin estándares universales no hay interoperabilidad Múltiples tecnologías para hacer lo mismo No interoperables entre sí Ligados a una plataforma DCOM CORBA Java RMI RPC Protocol RPC IIOP IIOP or JRMP Message Format NDR CDR Java Ser. Format Description IDL OMG IDL Java Discovery Windows Registry Naming Service RMI Registry or JNDI TechEd 2002

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

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

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

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

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

10 Servicios Web Protocolos
Servicios publicados Servicio 1 Servicio 1 Publicación mediante UDDI Descubrimiento mediante UDDI Servicio Servicio Web Aplicación Cliente Registro UDDI Descripción mediante WSDL XML Schema WSDL Invocación/Acceso mediante SOAP Transporte mediante HTTP / SMTP / WAP Mensaje SOAP TechEd 2002

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

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

13 Servicios Web básicos con .NET
TechEd 2002

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

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

16 SOAP Framework SOAP proporciona un marco de trabajo para gestionar aspectos nuevos Header/Body permiten extensibilidad <soap:Envelope xmlns:soap="..."> <soap:Header> </soap:Header> <soap:Body> </soap:Body> </soap:Envelope> <!–Etensibilidad estandard con Cabeceras --> <!-- Trabajo --> TechEd 2002

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

18 Especificaciones disponibles en:
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-* Cubrirá la mayoría de dichos estándares todavía pendientes Desarrollados sobre SOAP, de forma neutral Ofrece mensajes seguros, confiables y en el futuro transaccionales TechEd 2002

20 WS-* Pila de Protocolos
Aplicaciones e Inraestructura de Aplicaciones Aplicaciones Conectadas Procesos de Negocio Gestión Seguridad Confiabilidad Transacciones Metadatos Plataforma Base Mensajería XML HTTP TCP SMTP Transportes TechEd 2002

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

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

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

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

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

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

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

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

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

30 Configuración de una Extensión SOAP
La Clase Extensión puede asociarse con todos los WebMethods de un WS La ‘Extension class’ se especifica en el web.config Es llamada por cada WebMethod del WS 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 La Clase Extensión es llamada solamente para dicho WebMethod TechEd 2002

31 Configuración de una Extensión SOAP
Para cada WebMethod del WS <configuration> <system.web> <webServices> <soapExtensionTypes> <add type="ExtensionDeValidacion, UtilValidar" priority="1" group="0" /> </soapExtensionTypes> </webServices> </system.web> </configuration> TechEd 2002

32 ¿Dónde estamos? 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 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. Implementa varias especificaciones WS-* Plenamente soportado Pero implementa especificaciones en borrador Integrado con Visual Studio 2003 Descargable gratuitamente en TechEd 2002

34 WSE 2.0 (Web Services Enhancements)
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 Está planificado aprox. un release al año Versión 1 liberado en Dic 2002 (SP en Marzo 2003) Versión 2 Tech.Preview liberado 16 Jul 2003 SP1 Liberado 12 Marzo 2004 SP2 Liberado 3 Diciembre 2004 Beneficios Permite a ‘early-adopters’ usar los últimos estándares Permite a MS obtener ‘feedback’ del mundo real TechEd 2002

35 WSE 2.0 ¿Cómo es internamente?
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) TechEd 2002

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: Desarrollar mis propias extensiones desde cero Aprovechar WSE 2.0 Es posible que .NET Remoting se descontinúe con la aparición de INDIGO Ir trabajando con tecnologías de futuro TechEd 2002

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

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

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

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

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

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

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

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 Utiliza un nombre diferente de assembly Utiliza un namespace diferente La misma ‘public key token’ WSE 1.0 WSE 2.0 Assembly Microsoft.Web.Services Microsoft.Web.Services2 Namespace Version Public Key Token 31bf3856ad364e35 TechEd 2002

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

46 WSE 2.0 Arquitectura – Filtros

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

48 WSE 2.0 Implementación en Servidor
Integración con ASP.NET Web Services Uso de una ‘SOAP extension’ en servidor: “WebServiceExtension” Configurado en la sección de web.config <soapExtensionTypes> 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
Añade una referencia a Microsoft.Web.Services2 Configura la WebServicesExtension Añade sentencias ‘using’ a los namespaces que necesites 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; ... TechEd 2002

50 Configuración en web.config
<!--This element adds WSE functionality --> <configuration> <system.web> <webServices> <soapExtensionTypes> <add type= "Microsoft.Web.Services2.WebServicesExtension, Microsoft.Web.Services2, Version= , Culture=neutral, PublicKeyToken=31bf3856ad364e35" priority="1" group="0" /> </soapExtensionTypes> </webServices> TechEd 2002

51 Uso de ‘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] public string MiWebMehod() SoapContext reqCtx = RequestSoapContext.Current; SoapContext resCtx = ResponseSoapContext.Current; ... // usa Soapcontext para acceder a las x // implementaciones de WSE 1.0 y 2.0 } TechEd 2002

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

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

54 Configuración adicional de WSE
WSE se configura mediante una nueva ‘config section’ (microsoft.web.services2) <configuration> <configSections> <section name="microsoft.web.services2" type="Microsoft.Web.Services2.Configuration.Web ServicesConfiguration, Microsoft.Web.Services, Version= , Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> </configSections> ... TechEd 2002

55 microsoft.web.services
La ‘Config section’ se usa para configurar Caract. de Seguridad Caract. de Políticas Caract. de Ruteo Caract. de Diagnostico Caract. de Filtros <configuration> <microsoft.web.services2> <security> ... <policy> ... <referral> ... <diagnostics> ... <filters> ... </microsoft.web.services2> </configuration> TechEd 2002

56 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 Haz ‘clic’ con botón derecho en un proyecto y selecciona “WSE 2 Settings” La Utilidad ‘Settings tool’ automatiza las configuraciones (en .config, etc.) TechEd 2002

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

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

59 Trazas en WSE 2.0 WSE ofrece trazas de los mensajes
Registra entradas/salidas de mensajes SOAP Registra coincidencias de políticas // Habilitar ‘tracing’ en app.config ó web.config <configuration> <microsoft.web.services2> <diagnostics> <trace enabled="true" input="inputtrace.xml" output="outputtrace.xml"/> </diagnostics> </microsoft.web.services2> ... TechEd 2002

60 Habilitar y usar WSE 2.0 en Visual Studio 2003
TechEd 2002

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

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

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

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

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

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

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

68 Tipos Básicos de Criptografía
Security Reliable Messaging Transactions Metadata XML Seguridad Mensajería Confiable Transacciones Metadatos Criptografía Asimétrica Criptografía Simétrica Clave Pública Clave Privada Compartida Clave Privada 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?

69 Repaso de Criptografía (Cifrado)
Término Criptográfico Descripción Encriptación Simétrica Cifrado y descifrado de datos con una misma clave secreta Asimé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 TechEd 2002

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

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

72 Creación de una Firma Digital
Mensaje o Fichero Mensaje ‘Digest’ de 128 bits Firma Digital Esto es un texto confidencial Función Hash (SHA, MD5) Cifrado Asimétrico privada TechEd 2002

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

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

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

76 ‘Token’ Nombre-Usuario
Security Reliable Messaging Transactions Metadata XML Seguridad Mensajería Confiable Transacciones Metadatos ‘Token’ Nombre-Usuario Método mas simple La password se utiliza para generar una clave secreta que firme y encripte La Password se puede mandar como texto-plano o ‘digest’ (hash) 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 TechEd 2002

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

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

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

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

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

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

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

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

85 Firmas Digitales - Integridad
Security Reliable Messaging Transactions Metadata XML Seguridad Mensajería Confiable Transacciones Metadatos Firmas Digitales - Integridad 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 Para asegurarnos de que el mensaje no ha sido modificado fraudulentamente Para asegurarnos de que solamente el emisor ha podido mandarlo TechEd 2002

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

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

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

89 Obtención de Tokens de Seguridad WS-Trust
Define un protocolo para asignar y obtener ‘tokens’ de seguridad Utiliza un Servicio de Tokens de Seguridad (STS) para otorgar Tokens 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 STS puede gestionar el intercambio de un tipo de token de seguridad por otro TechEd 2002

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

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

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

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

94 ‘Secure-Conversation’
Petición del SCT SCT Otorgado al cliente Series de mensajes firmados por el SCT asignado Cliente Servidor TechEd 2002

95 Token Derivado de Seguridad
El DerivedKeyToken crea 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 Usarlo siempre que sea posible TechEd 2002

96 Uso de WS-SecureConversation con WSE
TechEd 2002

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

98 Security Reliable Messaging Transactions Metadata XML WSE Policy 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’. La caducidad de la política, etc. Los gestionadores (handlers) de WSE Policy pueden extenderse derivando de la clase PolicyAssertion

99 Security Reliable Messaging Transactions Metadata XML WSE Policy 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 comprobación de política se representa con un elemento XML (expresión de política) TechEd 2002

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

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

102 Configuración de Políticas de Seguridad con la utilidad ‘WSE Settings Tool’
TechEd 2002

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

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

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

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

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

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

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

110 SoapSender Security Reliable Messaging Transactions Metadata XML Seguridad Mensajería Confiable Transacciones Metadatos 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( Uri("soap.tcp://localhost/calc"))); ss.Send(sobre); TechEd 2002

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

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

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

114 WseWsdl2.exe Security Reliable Messaging Transactions Metadata XML Seguridad Mensajería Confiable Transacciones Metadatos WseWsdl2.exe genera código SoapClient a partir de definiciones WSDL 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 TechEd 2002

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

116 ¿Donde estamos? 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 puede utilizarse sin .ASMX, p.e. con Messaging-TCP TechEd 2002

117 Sep Oct Nov Dic Ene Feb Mar Abr May Jun
.NET y Servicios Web Desarrollo web Smart Clients Visual Studio 2005 SQL Server 2005 Webcast teórico Talleres en ciudades Aplicación MSDN Video Webcast práctica 18 Octubre Chat 28 Octubre Código de MSDN Video Calendario Tutoriales Seminarios Foros Descuento 40% libros TechEd 2002

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


Descargar ppt "WSE 2.0 (.NET Web Services Enhancements)"

Presentaciones similares


Anuncios Google