wse 2.0 (.net web services enhancements) césar de la torre software architect [microsoft mvp –...
Post on 03-Jan-2015
13 Views
Preview:
TRANSCRIPT
WSE 2.0 WSE 2.0 (.NET Web Services Enhancements)(.NET Web Services Enhancements)
César de la TorreSoftware Architect[Microsoft MVP – XML WebServices][MCSE] [MCT]Renacimientowww.renacimiento.com
AgendaAgenda Arquitecturas SOA (Service Oriented Arquitecturas SOA (Service Oriented
Architectures)Architectures) XML Web Services básicosXML Web Services básicos Introducción a WSE 2.0Introducción a WSE 2.0 Arquitectura-Módulos de WSE 2.0Arquitectura-Módulos de WSE 2.0 WSE 2.0 - SecurityWSE 2.0 - Security WSE 2.0 – Messaging y AddressingWSE 2.0 – Messaging y Addressing WSE 2.0 - Policy WSE 2.0 - Policy
Arquitecturas distribuidasArquitecturas distribuidasAntesAntes Sin estándares universales no hay Sin estándares universales no hay
interoperabilidadinteroperabilidad Múltiples tecnologías para hacer lo mismoMúltiples tecnologías para hacer lo mismo
No interoperables entre síNo interoperables entre sí Ligados a una plataformaLigados a una plataforma
DCOM CORBA
RPC IIOP
NDR CDR
IDL OMG IDL
RPC Protocol
Message Format
Description
Windows Registry Naming ServiceDiscovery
Java RMI
IIOP or JRMP
Java Ser. Format
Java
RMI Registry or JNDI
Arquitecturas distribuidasArquitecturas distribuidasAhoraAhora Los usuarios no quieren cerrarse a una Los usuarios no quieren cerrarse a una
plataformaplataforma Es necesaria una arquitectura sin Es necesaria una arquitectura sin
premisas e independiente…premisas e independiente… De la plataformaDe la plataforma Del lenguajeDel lenguaje De los objetosDe los objetos De los mecanismos de llamadaDe los mecanismos de llamada
Bienvenido a SOA…Bienvenido a SOA… Service Oriented ArquitectureService Oriented Arquitecture
Arquitecturas distribuidasArquitecturas distribuidasSOASOA
SOA ve el mundo de una forma SOA ve el mundo de una forma distintadistinta Servicios autónomosServicios autónomos Fronteras explícitas, asumir heterogeneidadFronteras explícitas, asumir heterogeneidad Plataformas disparesPlataformas dispares Integración basada en mensajes XMLIntegración basada en mensajes XML
Se comparte el esquema, no la claseSe comparte el esquema, no la clase
XML 1.0 + NamespacesXML 1.0 + Namespaces
Servicios Web Básicos (WS-I)Servicios Web Básicos (WS-I)
XSDXSD
SOAPSOAP
WSDLWSDL
UDDIUDDI
Sistema de tipos PortableSistema de tipos Portable
Mensajes SerializadosMensajes Serializados
Protocolo de mensajesProtocolo de mensajes
Descripción de WSDescripción de WS
Registro de WSRegistro de WS
ProtocolosProtocolos
Lenguajes de DescripciónLenguajes de Descripción
Mecanismos de DescubrimientoMecanismos de Descubrimiento
Ver ws-i.org para Ver ws-i.org para mas detallesmas detalles
Definición de Servicio WebDefinición de Servicio Web
Una aplicación o servicio que…Una aplicación o servicio que… Se comunica mediante protocolos abiertos Se comunica mediante protocolos abiertos
de Internet (como HTTP, SMTP, etc.) de Internet (como HTTP, SMTP, etc.) Procesa mensajes XML con SOAPProcesa mensajes XML con SOAP Describe los mensajes utilizando Describe los mensajes utilizando
‘Esquemas XML’‘Esquemas XML’ Proporciona un interfaz de descripción con Proporciona un interfaz de descripción con
WSDLWSDL Puede descubrirse mediante UDDIPuede descubrirse mediante UDDI
Servicio Web XMLServicio Web XML
Servicios WebServicios WebProtocolosProtocolos
Servicios publicadosServicios publicadosServicios publicadosServicios publicados
Registro UDDI
AplicaciónAplicaciónClienteCliente
AplicaciónAplicaciónClienteCliente
Descubrimientomediante
UDDI
Servicio 1Servicio 1Servicio 1Servicio 1
ServicioServicio
Servicio Servicio WebWeb
Servicio Servicio WebWeb
Invocación/Acceso mediante SOAPTransporte mediante HTTP / SMTP / WAP MensajeMensaje
SOAPSOAP
MensajeMensajeSOAPSOAP
Publicaciónmediante
UDDI
Descripción mediante WSDLXMLXML
SchemaSchemaWSDLWSDL
XMLXMLSchemaSchemaWSDLWSDL
Implementación .NET WS-IImplementación .NET WS-IWeb-Methods .ASMXWeb-Methods .ASMX ASP.NET (ASP.NET (Web-Methods ASMX)Web-Methods ASMX) permite permite
exponer clases .NET como servicios webexponer clases .NET como servicios web Atributos [WebService], [WebMethod]Atributos [WebService], [WebMethod] Traduce peticiones SOAPTraduce peticiones SOAP Genera automáticamente WSDL Genera automáticamente WSDL
Acceso a toda la funcionalidad ASP.NETAcceso a toda la funcionalidad ASP.NET SesiónSesión SeguridadSeguridad Extensiones, etc.Extensiones, etc.
Implementación .NETImplementación .NETConsumo de servicios webConsumo de servicios web
Herramienta WSDL.exeHerramienta WSDL.exe Genera un proxy a partir de un WSDLGenera un proxy a partir de un WSDL Llamada por “add reference” en VS.NETLlamada por “add reference” en VS.NET
Clase proxy derivada de Clase proxy derivada de SoapHttpClientProtocolSoapHttpClientProtocol Con métodos semejantes al Web ServiceCon métodos semejantes al Web Service Métodos comunesMétodos comunes
AutentificaciónAutentificación Llamadas asíncronasLlamadas asíncronas
Servicios Web básicos Servicios Web básicos con .NETcon .NET
¿Son suficientes los WS Básicos?¿Son suficientes los WS Básicos?
Los WS básicos (XSD, SOAP, WSDL, Los WS básicos (XSD, SOAP, WSDL, UDDI) consiguen una comunicación UDDI) consiguen una comunicación básicabásica Proporcionan intercambio básico de Proporcionan intercambio básico de
mensajes XMLmensajes XML Interconexión de sistemas heterogéneosInterconexión de sistemas heterogéneos La compartición de esquemas permite La compartición de esquemas permite
mayores abstraccionesmayores abstracciones
PERO, la mayoría de las aplicaciones PERO, la mayoría de las aplicaciones distribuidas necesitan MAS…distribuidas necesitan MAS…
Temas Pendientes AbiertosTemas Pendientes Abiertos
Los Sevicios-Web tienen muchas Los Sevicios-Web tienen muchas necesidades comunesnecesidades comunes Modelo de seguridad ‘orientado a Modelo de seguridad ‘orientado a
mensajes’mensajes’ Mensajería estable y confiableMensajería estable y confiable Soporte de Transacciones (entre WS)Soporte de Transacciones (entre WS) Mecanismos de Direccionamiento y RuteoMecanismos de Direccionamiento y Ruteo Mensajería AsíncronaMensajería Asíncrona Metadatos para ‘Políticas’ de WSMetadatos para ‘Políticas’ de WS Soporte para datos binariosSoporte para datos binarios
SOAP FrameworkSOAP Framework
SOAP proporciona un marco de trabajo SOAP proporciona un marco de trabajo para gestionar aspectos nuevospara gestionar aspectos nuevos Header/Body permiten extensibilidadHeader/Body permiten extensibilidad
<soap:Envelope<soap:Envelope xmlns:soap="...">xmlns:soap="..."> <soap:Header><soap:Header>
</soap:Header></soap:Header> <soap:Body><soap:Body>
</soap:Body></soap:Body></soap:Envelope></soap:Envelope>
<!-- Trabajo --><!-- Trabajo -->
<!–Etensibilidad estandard con Cabeceras <!–Etensibilidad estandard con Cabeceras -->-->
Extensibilidad de SOAPExtensibilidad de SOAP SOAP no define cabeceras por si SOAP no define cabeceras por si
mismomismo Las Cabeceras ‘reconocidas’ son las Las Cabeceras ‘reconocidas’ son las
que permiten a las app. negociarque permiten a las app. negociar HTTP usa cabeceras para negociar HTTP usa cabeceras para negociar
serviciosservicios
WS-* (nuevas ESPECIFICACIONES WS) WS-* (nuevas ESPECIFICACIONES WS) extiende SOAP con cabeceras extiende SOAP con cabeceras estandardestandard Ahora necesitamos las implementaciones Ahora necesitamos las implementaciones
de diferentes fabricantes (MS, etc.)de diferentes fabricantes (MS, etc.)
WS-* WS-* Son las ESPECIFICACIONES ESTANDARD Son las ESPECIFICACIONES ESTANDARD que están siendo definidas por múltiples que están siendo definidas por múltiples fabricantesfabricantes
- Microsoft, IBM, HP, Fujitsu, BEA, - Microsoft, IBM, HP, Fujitsu, BEA, VeriSign, SUN, Oracle, CA, Nokia, VeriSign, SUN, Oracle, CA, Nokia, CommerceOne, Documentum, TIBCO, etc.CommerceOne, Documentum, TIBCO, etc.
Especificaciones disponibles en:Especificaciones disponibles en:
http://http://www.oasiswww.oasis--open.orgopen.org
La nueva Pila de ProtocolosLa nueva Pila de Protocolos WS-* WS-*
Microsoft junto con otros partners está Microsoft junto con otros partners está desarrollando su implementación de la desarrollando su implementación de la pila de protocolos WS-*pila de protocolos WS-* Cubrirá la mayoría de dichos estándares Cubrirá la mayoría de dichos estándares
todavía pendientestodavía pendientes Desarrollados sobre SOAP, de forma Desarrollados sobre SOAP, de forma
neutralneutral Ofrece mensajes seguros, confiables y en Ofrece mensajes seguros, confiables y en
el futuro transaccionalesel futuro transaccionales
WS-* Pila de ProtocolosWS-* Pila de Protocolos
PlataformaPlataformaBaseBase
Aplicaciones eAplicaciones eInraestructura Inraestructura
de Aplicacionesde Aplicaciones
TransportesTransportes
Aplicaciones Aplicaciones ConectadasConectadas GestiónGestión Procesos Procesos
de Negociode Negocio……
SeguridadSeguridad ConfiabilidadConfiabilidad TransaccionesTransacciones
MensajeríaMensajería
XMLXML
Met
adat
os
Met
adat
os
HTTPHTTP TCPTCP SMTPSMTP ……
WS-* Especificaciones (Resumen)WS-* Especificaciones (Resumen)
MessagingMessaging WS-AddressingWS-Addressing WS-Eventing WS-Eventing MTOM (Attachments)MTOM (Attachments)
ReliabilityReliability WS-ReliableMessagingWS-ReliableMessaging
SecuritySecurity WS-SecurityWS-Security WS-TrustWS-Trust WS-SecureConversationWS-SecureConversation WS-FederationWS-Federation
TransactionsTransactions WS-CoordinationWS-Coordination WS-AtomicTransactionWS-AtomicTransaction WS-BusinessActivityWS-BusinessActivity
MetadataMetadata WS-PolicyWS-Policy WS-PolicyAssertionsWS-PolicyAssertions WS-PolicyAttachmentWS-PolicyAttachment WS-SecurityPolicyWS-SecurityPolicy WS-DiscoveryWS-Discovery WS-MetadataExchangeWS-MetadataExchange
Plataformas Servicios Web .NETPlataformas Servicios Web .NET ASMX es la plataforma actual de WS en .NETASMX es la plataforma actual de WS en .NET
Soporta funciones básicas para servicios Soporta funciones básicas para servicios sencillossencillos
No implementa las especificaciones WS-*No implementa las especificaciones WS-* WSE 2.0 es una extensión de la plataforma WSE 2.0 es una extensión de la plataforma
actualactual Puede utilizarse para extender el comportamiento Puede utilizarse para extender el comportamiento
de ASMXde ASMX Puede utilizarse de forma separada sin ASMXPuede 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 Indigo’ es la siguiente generación de plataforma de WebServicesplataforma de WebServices Proporcionará una solución completa WS-*Proporcionará una solución completa WS-*
Introducción a WSE 2.0Introducción a WSE 2.0(Web Services Extensions 2.0)(Web Services Extensions 2.0)
Arquitectura Futura de WSArquitectura Futura de WSRoadmapRoadmap
Seguridad Mensajeríaconfiable
Transacciones
Mensajería
XML
Meta
dato
s
TransportesTransportes
Aplicaciones ConectadasAplicaciones Conectadas
Siguiente generación de Siguiente generación de Plataforma WSPlataforma WS Las plataformas de Servicios-Web Las plataformas de Servicios-Web
tienen que evolucionar para cubrir los tienen que evolucionar para cubrir los nuevos estándares (WS-*)nuevos estándares (WS-*) Seguridad, confiabilidad, mensajes Seguridad, confiabilidad, mensajes
transaccionalestransaccionales
Inicialmente, ¿Como extendemos Inicialmente, ¿Como extendemos ASMX para conseguir esto?ASMX para conseguir esto?
SoapExtension FrameworkSoapExtension Framework
ASMX proporciona un framework para ASMX proporciona un framework para la extensibilidadla extensibilidad
Puedes desarrollar una clase que será Puedes desarrollar una clase que será invocada:invocada: Antes y después del procesamiento del Antes y después del procesamiento del
mensaje SOAP mensaje SOAP
Niveles de SoapExtensionNiveles de SoapExtension
SOAP extension en cada nivelSOAP extension en cada nivel
ASMX HandlerASMX Handler
Clase ServicioWebClase ServicioWeb
[WebMethod][WebMethod]public int sumar public int sumar int x, int y)int x, int y){{ return x+y;return x+y;}}
<soap:Envelope <soap:Envelope … …</soap:Envelope></soap:Envelope>
<soap:Envelope <soap:Envelope … …</soap:Envelope></soap:Envelope>
XmlSerializerXmlSerializer
Invocación a Extension (1)Invocación a Extension (1) Invocacíón a Extensión (2)Invocacíón a Extensión (2)
Invocación a Extensión (3)Invocación a Extensión (3)Invocación a Extensión (4)Invocación a Extensión (4)
Configuración de una Extensión SOAPConfiguración de una Extensión SOAP La Clase Extensión puede asociarse La Clase Extensión puede asociarse
con todos los WebMethods de un WScon todos los WebMethods de un WS La ‘Extension class’ se especifica en el La ‘Extension class’ se especifica en el
web.configweb.config Es llamada por cada WebMethod del WSEs llamada por cada WebMethod del WS
La Clase Extensión puede asociarse La Clase Extensión puede asociarse con un WebMethod específicocon un WebMethod específico Los métodos marcados con un atributo Los métodos marcados con un atributo
especial que especifique la Clase especial que especifique la Clase ExtensiónExtensión
La Clase Extensión es llamada solamente La Clase Extensión es llamada solamente para dicho WebMethodpara dicho WebMethod
Configuración de una Extensión SOAPConfiguración de una Extensión SOAP
Para cada WebMethod del WSPara cada WebMethod del WS<configuration><configuration> <system.web><system.web> <webServices><webServices> <soapExtensionTypes><soapExtensionTypes> <add type="ExtensionDeValidacion, UtilValidar" <add type="ExtensionDeValidacion, UtilValidar" priority="1" group="0" />priority="1" group="0" /> </soapExtensionTypes></soapExtensionTypes> </webServices></webServices> </system.web></system.web></configuration></configuration>
¿Dónde estamos?¿Dónde estamos?
OK, por ahora sabemos que podríamos OK, por ahora sabemos que podríamos extender los Servicios Web .ASMX extender los Servicios Web .ASMX de .NET 1.1 mediante la Clase de .NET 1.1 mediante la Clase SoapExtensionSoapExtension
Y… Así se ha extendido con WSE 2.0Y… Así se ha extendido con WSE 2.0 Pero, ¿qué es exactamente Microsoft Pero, ¿qué es exactamente Microsoft
WSE 2.0?WSE 2.0?
WSE 2.0WSE 2.0 (Microsoft Web Services Enhancements) (Microsoft Web Services Enhancements)
¿Qué es?¿Qué es? Extensión de los Servicios Web de .NET Extensión de los Servicios Web de .NET
1.1.1.1. Implementa varias especificaciones WS-*Implementa varias especificaciones WS-* Plenamente soportadoPlenamente soportado
Pero implementa especificaciones en Pero implementa especificaciones en borradorborrador
Integrado con Visual Studio 2003Integrado con Visual Studio 2003Descargable gratuitamente enDescargable gratuitamente en
http://msdn.microsoft.com/webservices/building/wse/default.aspx
A nivel lógico es parte de .NET Framework, A nivel lógico es parte de .NET Framework, pero se le mantiene ‘separado’ mientras estos pero se le mantiene ‘separado’ mientras estos estándares estén evolucionandoestándares estén evolucionando Soportado por 2+1 añosSoportado por 2+1 años Está planificado aprox. un release al añoEstá 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 2003Tech.Preview liberado 16 Jul 2003 SP1 Liberado 12 Marzo 2004SP1 Liberado 12 Marzo 2004 SP2 Liberado 3 Diciembre 2004SP2 Liberado 3 Diciembre 2004
BeneficiosBeneficios Permite a ‘early-adopters’ usar los últimos Permite a ‘early-adopters’ usar los últimos
estándaresestándares Permite a MS obtener ‘feedback’ del mundo realPermite a MS obtener ‘feedback’ del mundo real
WSE 2.0 WSE 2.0 (Web Services Enhancements) (Web Services Enhancements)
WSE 2.0WSE 2.0
¿Cómo es internamente?¿Cómo es internamente? 1.- Proporciona una ‘Extensión SOAP’ 1.- Proporciona una ‘Extensión SOAP’
para usarla con los WebMethodspara usarla con los WebMethods 2.- También Se puede emplear sin 2.- También Se puede emplear sin
apoyarse en .ASMX (p.e. con Messaging-apoyarse en .ASMX (p.e. con Messaging-TCP ó Mesaging in-process)TCP ó Mesaging in-process)
¿Por qué usar hoy WSE 2.0?¿Por qué usar hoy WSE 2.0? Las aplicaciones reales de negocio Las aplicaciones reales de negocio
tienen muchos requerimientos que los tienen muchos requerimientos que los WS básicos carecen. Hay dos WS básicos carecen. Hay dos opciones:opciones: Desarrollar mis propias extensiones Desarrollar mis propias extensiones
desde cerodesde cero Aprovechar WSE 2.0Aprovechar WSE 2.0
Es posible que .NET Remoting se Es posible que .NET Remoting se descontinúe con la aparición de descontinúe con la aparición de INDIGOINDIGO
Ir trabajando con tecnologías de futuroIr trabajando con tecnologías de futuro
Módulos de Arquitectura WS-* Módulos de Arquitectura WS-* implementados en WSE 2.0 implementados en WSE 2.0
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
MensajeríaConfiable
Transacciones
Mensajería
XML
Meta
dato
s
SeguridadSeguridad
Mensajería
Soporte en WSE 2.0 de Soporte en WSE 2.0 de especificaciones WS-*especificaciones WS-*
MessagingMessaging WS-MessagingWS-Messaging WS-AddressingWS-Addressing WS-Eventing WS-Eventing MTOM (Attachments)MTOM (Attachments)
ReliabilityReliability WS-ReliableMessagingWS-ReliableMessaging
SecuritySecurity WS-SecurityWS-Security WS-TrustWS-Trust WS-SecureConversationWS-SecureConversation WS-FederationWS-Federation
TransactionsTransactions WS-CoordinationWS-Coordination WS-AtomicTransactionWS-AtomicTransaction WS-BusinessActivityWS-BusinessActivity
MetadataMetadata WS-PolicyWS-Policy WS-PolicyAssertionsWS-PolicyAssertions WS-PolicyAttachmentWS-PolicyAttachment WS-SecurityPolicyWS-SecurityPolicy WS-DiscoveryWS-Discovery WS-MetadataExchangeWS-MetadataExchange
* (Implementado en WSE 2.0)* (Implementado en WSE 2.0)
Módulos de ArquitecturaMódulos de ArquitecturaSeguridadSeguridad
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging Meta
data
Meta
data
XMLXML
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging Meta
data
Meta
data
XMLXML
Security ReliableMessaging
Transactions
Messaging
XML
Meta
data
WSE 2.0 soporta WS-SecurityWSE 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 WSE 2.0 soporta WS-Trust y WS-Trust y
WS-SecureConversationWS-SecureConversation Usa tokens de contexto de seguridadUsa tokens de contexto de seguridad Automatiza conversaciones segurasAutomatiza conversaciones seguras
WSE 2.0 soporta seguridad basada en rolesWSE 2.0 soporta seguridad basada en roles IPrincipal, IsInRole, etc.IPrincipal, IsInRole, etc.
WS-MessagingWS-Messaging Mensajería independiente del protocolo (Por Mensajería independiente del protocolo (Por
ahora TCP, HTTP e ‘InProc’)ahora TCP, HTTP e ‘InProc’)
WS-AddressingWS-Addressing Ruteo de mensajesRuteo de mensajes Especificados con WS-ReferralEspecificados con WS-Referral Permite routing según contenidoPermite routing según contenido
WS-Attachments WS-Attachments Ahora MTOM Ahora MTOM Ficheros binarios adjuntosFicheros binarios adjuntos
Módulos de ArquitecturaMódulos de Arquitectura MensajeríaMensajería
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
Seguridad MensajeríaConfiable
Transacciones
Mensajería
XML
Meta
dato
s
WSE - ArquitecturaWSE - ArquitecturaMetadatosMetadatos
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging Meta
data
Meta
data
XMLXML
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging Meta
data
Meta
data
XMLXML
Security ReliableMessaging
Transactions
Messaging
XML
Meta
data
WSE 2.0 soporta WS-PolicyWSE 2.0 soporta WS-Policy Una Política es un fichero de Una Política es un fichero de
configuración que especifica configuración que especifica requerimientos para los mensajes XMlrequerimientos para los mensajes XMl
Tambien soporta Tambien soporta WS-PolicyAssertion WS-PolicyAssertion y WS-SecurityPolicyy WS-SecurityPolicy
WSE 2.0 soporta políticas de WSE 2.0 soporta políticas de comprobaciones propiascomprobaciones propias
Extensibilidad y Evolución
Seguridad, Confiabilidad, Transaccionalidad
Base para WS
Especificaciones WS-*Especificaciones WS-*
20032000 2001 2002 2004 2005
WS-ReliableMessagingWS-ReliableMessaging
Relia
bility
Relia
bility
WS-I formedWS-I formed
Inte
rop
era
bility
Inte
rop
era
bility
WS-I BP 1.0WS-I BP 1.0
Security RoadmapSecurity Roadmap
Wh
itep
ap
ers
Wh
itep
ap
ers
Reliable Messaging RoadmapReliable Messaging RoadmapSRT Web Services WhitepaperSRT Web Services Whitepaper
WS-SecurityWS-Security
WS-TrustWS-Trust
Secu
rityS
ecu
rity
WS-Security AddendumWS-Security Profile for Tokens
WS-Security AddendumWS-Security Profile for Tokens
WS-FederationWS-Federation Active Requestor Profile
WS-FederationWS-Federation Active Requestor Profile
WS-Security SOAP Message SecurityWS-Security Username Token ProfileWS-Security X.509 Certificate Token Profile
WS-Security SOAP Message SecurityWS-Security Username Token ProfileWS-Security X.509 Certificate Token Profile
WS-Security Kerberos BindingWS-Security Kerberos Binding
WS-CoordinationWS-Transaction
WS-CoordinationWS-Transaction
Tra
nsa
ction
sTra
nsa
ction
s
WS-AtomicTransactionWS-AtomicTransaction
WS-BusinessActivityWS-BusinessActivity
SOAP 1.1SOAP 1.1
Messa
gin
gM
essa
gin
g
SOAP Messages with Attachments
SOAP Messages with Attachments
WS-ReferralWS-Routing
WS-ReferralWS-Routing
DIMEDIME WS-AttachmentsWS-Attachments
WS-AddressingWS-AddressingSOAP 1.2SOAP 1.2
MTOMMTOMWS-EventingWS-Eventing
WS-Policy 1.1WS-PolicyAttachments 1.1WS-PolicyAssertions 1.1
WS-Policy 1.1WS-PolicyAttachments 1.1WS-PolicyAssertions 1.1
WS-PolicyWS-PolicyAttachmentsWS-PolicyAssertionsWS-SecurityPolicy
WS-PolicyWS-PolicyAttachmentsWS-PolicyAssertionsWS-SecurityPolicy
Meta
data
Meta
data
UDDI 1.0UDDI 1.0
WSDLWSDLUDDI 2.0UDDI 2.0
WS-InspectionWS-InspectionUDDI 3.0UDDI 3.0
WS-DiscoveryWS-MetadataExchange
WS-DiscoveryWS-MetadataExchange
Desde 2/2004
WSE 2.0 WSE 2.0 Arquitectura – ImplementaciónArquitectura – Implementación WSE 2.0 necesita:WSE 2.0 necesita:
Escribir cabeceras en los mensajes SOAP Escribir cabeceras en los mensajes SOAP de salida y leer de los mensajes de entradade salida y leer de los mensajes de entrada
Transformar el ‘body’ de los mensajesTransformar el ‘body’ de los mensajes
WSE 2.0 lo implementa utilizando filtros WSE 2.0 lo implementa utilizando filtros SOAPSOAP
WSE 2.0 WSE 2.0 Arquitectura – FiltrosArquitectura – Filtros
WSE 2.0WSE 2.0DesarrolloDesarrollo En clienteEn cliente
Visual Studio crea dos clases ‘proxies’ en Visual Studio crea dos clases ‘proxies’ en cada referenciacada referencia <ServiceName><ServiceName> <ServiceName>WSE<ServiceName>WSE
En servidorEn servidor Mismo código (Depende qué WS-*)Mismo código (Depende qué WS-*) Configuración en Configuración en web.configweb.config Funcionalidad adicional disponible en Funcionalidad adicional disponible en
SoapContextSoapContext
WSE 2.0WSE 2.0Implementación en ServidorImplementación en Servidor
Integración con ASP.NET Web ServicesIntegración con ASP.NET Web Services Uso de una ‘SOAP extension’ en servidor: Uso de una ‘SOAP extension’ en servidor:
“WebServiceExtension”“WebServiceExtension” Configurado en la sección de web.config Configurado en la sección de web.config
<soapExtensionTypes><soapExtensionTypes>
Comunicación entre los filtros y el Comunicación entre los filtros y el código mediante la clase ‘SoapContext’código mediante la clase ‘SoapContext’
Como utilizar WSE 2.0Como utilizar WSE 2.0
Para comenzar a usar WSE en un WebMethodPara comenzar a usar WSE en un WebMethod1.1. Añade una referencia a Microsoft.Web.Services2Añade una referencia a Microsoft.Web.Services2
2.2. Configura la WebServicesExtensionConfigura la WebServicesExtension
3.3. Añade sentencias ‘Añade sentencias ‘usingusing’ a los ’ a los namespacesnamespaces que que necesitesnecesites
4.4. Extiende el código del WebMethodExtiende el código del WebMethod
// Clases Generales de WSE 2.0// Clases Generales de WSE 2.0using Microsoft.Web.Services2;using Microsoft.Web.Services2;// Clases de WS-Security// Clases de WS-Securityusing Microsoft.Web.Services2.Security;using Microsoft.Web.Services2.Security;......
Configuración en web.configConfiguración en web.config
<!--This element adds WSE functionality --><!--This element adds WSE functionality --><configuration><configuration> <system.web><system.web> <webServices><webServices> <soapExtensionTypes><soapExtensionTypes> <add type=<add type= "Microsoft.Web.Services2.WebServicesExtension,"Microsoft.Web.Services2.WebServicesExtension, Microsoft.Web.Services2, Version=2.0.0.0,Microsoft.Web.Services2, Version=2.0.0.0, Culture=neutral,Culture=neutral, PublicKeyToken=31bf3856ad364e35" PublicKeyToken=31bf3856ad364e35" priority="1" group="0" />priority="1" group="0" /> </soapExtensionTypes></soapExtensionTypes> </webServices></webServices> <system.web><system.web><configuration><configuration>
Uso de ‘SoapContext’Uso de ‘SoapContext’ Dentro de un WebMethod, la info. De Dentro de un WebMethod, la info. De
WSE está disponible via la clase WSE está disponible via la clase SoapContextSoapContext[WebService(Namespace="http://example.org/wse/")][WebService(Namespace="http://example.org/wse/")]public class Endpoint1 : WebServicepublic 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 }}}}
Uso de WSE en el Cliente (1)Uso de WSE en el Cliente (1) Nueva clase base proxy: Nueva clase base proxy:
WebServiceClientProtocolWebServiceClientProtocol Extiende SoapHttpClientProtocolExtiende SoapHttpClientProtocol Se comunica usando SoapWebRequest y Se comunica usando SoapWebRequest y
SoapWebResponse de System.NetSoapWebResponse de System.Net Comunicación entre filtros y código Comunicación entre filtros y código
mediante la clase ‘SoapContext’mediante la clase ‘SoapContext’ Se utiliza para pasar/recibir info. desde/hacia Se utiliza para pasar/recibir info. desde/hacia
los filtroslos filtros Expuesta mediante las propiedades Expuesta mediante las propiedades
RequestSoapContext y ResponseSoapContextRequestSoapContext y ResponseSoapContext
Uso de WSE en el Cliente (2)Uso de WSE en el Cliente (2) Los clientes wsdl.exe pueden utilizar WSELos clientes wsdl.exe pueden utilizar WSE
Cambia la clase base a ‘WebServicesClientProtocol’Cambia la clase base a ‘WebServicesClientProtocol’
// Proxy wsdl.exe generado// Proxy wsdl.exe generado......public class Servicio1 : 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();Servicio1 srv = new Servicio1();SoapContext reqCtx = srv.RequestSoapContext;SoapContext reqCtx = srv.RequestSoapContext;SoapContext resCtx = srv.ResponseSoapContext;SoapContext resCtx = srv.ResponseSoapContext;... // usa Soapcontext para acceder a las ... // usa Soapcontext para acceder a las // implementaciones WS-*// implementaciones WS-*
Configuración adicional de WSEConfiguración adicional de WSE
WSE se configura mediante una nueva WSE se configura mediante una nueva ‘config section’ (microsoft.web.services2)‘config section’ (microsoft.web.services2)
<configuration><configuration> <configSections><configSections> <section name="microsoft.web.services2"<section name="microsoft.web.services2" type="Microsoft.Web.Services2.Configuration.Web type="Microsoft.Web.Services2.Configuration.Web ServicesConfiguration, ServicesConfiguration, Microsoft.Web.Services, Microsoft.Web.Services, Version=2.0.0.0, Version=2.0.0.0, Culture=neutral, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />PublicKeyToken=31bf3856ad364e35" /> </configSections></configSections> ......
microsoft.web.servicesmicrosoft.web.services
La ‘Config section’ se usa para La ‘Config section’ se usa para configurarconfigurar Caract. de SeguridadCaract. de Seguridad Caract. de PolíticasCaract. de Políticas Caract. de RuteoCaract. de Ruteo Caract. de Diagnostico Caract. de Diagnostico Caract. de FiltrosCaract. de Filtros
<configuration><configuration> <microsoft.web.services2><microsoft.web.services2> <security> ...<security> ... <policy> ...<policy> ... <referral> ...<referral> ... <diagnostics> ...<diagnostics> ... <filters> ...<filters> ... </microsoft.web.services2></microsoft.web.services2></configuration></configuration>
Integración conIntegración con Visual Studio .NET Visual Studio .NET
WSE 2.0 proporciona integración con WSE 2.0 proporciona integración con Visual Studio .NETVisual Studio .NET Elije “Visual Studio Tools” en la Elije “Visual Studio Tools” en la
instalación de WSE 2.0instalación de WSE 2.0 Haz ‘clic’ con botón derecho en un Haz ‘clic’ con botón derecho en un
proyecto y selecciona “WSE 2 Settings”proyecto y selecciona “WSE 2 Settings”
La Utilidad ‘Settings tool’ automatiza La Utilidad ‘Settings tool’ automatiza las configuraciones (en .config, etc.)las configuraciones (en .config, etc.)
Utilidad ‘WSE Settings’Utilidad ‘WSE Settings’
Esta herramienta te Esta herramienta te permite…permite… Añadir una Añadir una
referencia al referencia al assembly WSEassembly WSE
Configurar la Configurar la SoapExtensionSoapExtension
Configurar el Configurar el soporte de soporte de protocolos WS-*protocolos WS-*
Integración Cliente conIntegración Cliente conVisual Studio .NETVisual Studio .NET
Puedes habilitar WSE 2.0 en proyectos Puedes habilitar WSE 2.0 en proyectos cliente mediante la utilidad ‘settings cliente mediante la utilidad ‘settings tool’tool’
Cuando añades una “Web Reference”, Cuando añades una “Web Reference”, te genera dos ‘clases proxy’te genera dos ‘clases proxy’ Una que usa WSE Una que usa WSE
(e.j., “CalculadoraWse”)(e.j., “CalculadoraWse”) Y otra que no (e.j., “Calculadora")Y otra que no (e.j., “Calculadora")
Trazas en WSE 2.0Trazas en WSE 2.0 WSE ofrece trazas de los mensajesWSE ofrece trazas de los mensajes
Registra entradas/salidas de mensajes Registra entradas/salidas de mensajes SOAPSOAP
Registra coincidencias de políticasRegistra coincidencias de políticas
// Habilitar ‘tracing’ en app.config ó web.config// Habilitar ‘tracing’ en app.config ó web.config<configuration><configuration> <microsoft.web.services2> <microsoft.web.services2> <diagnostics><diagnostics>
<trace enabled="true" <trace enabled="true" input="inputtrace.xml" input="inputtrace.xml" output="outputtrace.xml"/>output="outputtrace.xml"/> </diagnostics> </diagnostics> </microsoft.web.services2></microsoft.web.services2>......
Habilitar y usar WSE 2.0 enHabilitar y usar WSE 2.0 enVisual Studio 2003Visual Studio 2003
WSE 2.0 SecurityWSE 2.0 Security(Implementacion de WS-Security, (Implementacion de WS-Security, WS-Trust y WS-SecureConversation)WS-Trust y WS-SecureConversation)
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
Seguridad MensajeríaConfiable
Transacciones
Mensajería
XML
Meta
dato
s
SecuritySecurity ReliableMessagingReliable
MessagingTransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
SecuritySecurity ReliableMessagingReliable
MessagingTransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
Seguridad MensajeríaConfiable
Transacciones
Mensajería
XML
Meta
dato
s
Necesidades SeguridadNecesidades SeguridadResumenResumen
La Seguridad es crítica para los WS intra ó inter La Seguridad es crítica para los WS intra ó inter organizacionalesorganizacionales
Necesitamos:Necesitamos: Autenticación, integridad de mensasjes, Autenticación, integridad de mensasjes,
confidencialidad, confianza y privacidadconfidencialidad, confianza y privacidad Federación de seguridad entre organizacionesFederación de seguridad entre organizaciones
Seguridad en Servicios WebSeguridad en Servicios Web Securizar los mensajesSecurizar los mensajes Soportar varias tecnologías criptográficasSoportar varias tecnologías criptográficas
Conversaciones SegurasConversaciones Seguras Securizar un intercambio contínuo de mensajesSecurizar un intercambio contínuo de mensajes
ConfianzaConfianza Extender relaciones de confianza a lo largo de los Extender relaciones de confianza a lo largo de los
servicios distribuidosservicios distribuidos Federación (*)Federación (*)
Unificar servicios en un dominio único de seguridadUnificar servicios en un dominio único de seguridad
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
Seguridad MensajeríaConfiable
Transacciones
Mensajería
XML
Meta
dato
s
Seguridad Seguridad FundamentosFundamentos
Autenticación – ¿Quién eres?Autenticación – ¿Quién eres? Autorización – ¿Qué te está permitido Autorización – ¿Qué te está permitido
hacer?hacer? Comunicación SeguraComunicación Segura
Confidencialidad – ¿Puede alguien que no Confidencialidad – ¿Puede alguien que no debe entender la comunicación?debe entender la comunicación?
Integridad – ¿Ha sido el mensaje Integridad – ¿Ha sido el mensaje modificado ilegalmente?modificado ilegalmente?
No repudio - ¿Puedo estar seguro de que No repudio - ¿Puedo estar seguro de que fuiste tú el que lo mandaste?fuiste tú el que lo mandaste?
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
Seguridad MensajeríaConfiable
Transacciones
Mensajería
XML
Meta
dato
s
Comunicación SeguraComunicación SeguraSeguridad a nivel de protocoloSeguridad a nivel de protocolo
Cifra toda la comunicaciónCifra toda la comunicación El ‘Emisor’ tiene que confiar en todos El ‘Emisor’ tiene que confiar en todos
los intermediarioslos intermediarios Restringe los protocolos que pueden Restringe los protocolos que pueden
usarse (p.e. solo SSL, etc.)usarse (p.e. solo SSL, etc.)
Seguridad SSLSeguridad SSL Seguridad SSLSeguridad SSL
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
Seguridad MensajeríaConfiable
Transacciones
Mensajería
XML
Meta
dato
s
Comunicación SeguraComunicación SeguraSeguridad a nivel de MensajeSeguridad a nivel de Mensaje
Seguridad extremo a extremo del mensaje Seguridad extremo a extremo del mensaje independiente del ‘Transporte’independiente del ‘Transporte’
Soporta múltiples protocolos y múltiples Soporta múltiples protocolos y múltiples tecnologías de cifrado (encriptación)tecnologías de cifrado (encriptación)
Se encripta solamente parte del mensajeSe encripta solamente parte del mensaje El emisor solamente necesita confiar en el El emisor solamente necesita confiar en el
punto finalpunto final
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
Seguridad MensajeríaConfiable
Transacciones
Mensajería
XML
Meta
dato
s
Seguridad a Nivel Seguridad a Nivel de Mensajede Mensaje
Credenciales
Firmas Digitales
Los mensajes pueden encriptarse
Cliente
Transporte
Servicio
TransporteCualquier Transporte
XML
XML XML
XMLLa seguridad es
independiente del protocolo de transporte
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
Seguridad MensajeríaConfiable
Transacciones
Mensajería
XML
Meta
dato
s
Tipos Básicos de Tipos Básicos de CriptografíaCriptografía
ClavePública
ClavePrivada
Criptografía Asimétrica
Clave PrivadaCompartida
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
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
Seguridad MensajeríaConfiable
Transacciones
Mensajería
XML
Meta
dato
s
Repaso de CriptografíaRepaso de Criptografía(Cifrado)(Cifrado)
Término Término CriptográficoCriptográfico DescripciónDescripción
EncriptaciónEncriptación
SimétricaSimétricaCifrado y descifrado de datos con Cifrado y descifrado de datos con una misma clave secretauna misma clave secreta
EncriptaciónEncriptación
AsimétricaAsimétrica
Cifrado y descifrado de datos con Cifrado y descifrado de datos con una pareja de claves una pareja de claves (pública/privada)(pública/privada)
HashingHashingGeneración de un ‘cifrado fijo’ en un Generación de un ‘cifrado fijo’ en un único sentido (no descifrable) y único sentido (no descifrable) y practicamente único.practicamente único.
Firma DigitalFirma Digital Generación de Hash y cifrado del Generación de Hash y cifrado del valor del hash con una clave privadavalor del hash con una clave privada
Py75c%bn&*)Py75c%bn&*)9|fDe^bDFaq9|fDe^bDFaq#xzjFr@g5=#xzjFr@g5=
&nmdFg$5kn&nmdFg$5knvMd’rkvegMs”vMd’rkvegMs”
Py75c%bn&*)Py75c%bn&*)9|fDe^bDFaq9|fDe^bDFaq#xzjFr@g5=#xzjFr@g5=
&nmdFg$5kn&nmdFg$5knvMd’rkvegMs”vMd’rkvegMs”
Encriptación de MensajesEncriptación de MensajesEmisorEmisorEncriptación de MensajesEncriptación de MensajesEmisorEmisor
SimétricaSimétrica
EncriptaciónEncriptación
Esto es un Esto es un texto texto
confidencial, confidencial, etc.etc.
Py75c%bn&*)Py75c%bn&*)9|fDe^bDFaq9|fDe^bDFaq#xzjFr@g5=#xzjFr@g5=
&nmdFg$5kn&nmdFg$5knvMd’rkvegMs”vMd’rkvegMs”
Py75c%bn&*)Py75c%bn&*)9|fDe^bDFaq9|fDe^bDFaq#xzjFr@g5=#xzjFr@g5=
&nmdFg$5kn&nmdFg$5knvMd’rkvegMs”vMd’rkvegMs”
EncriptaciónEncriptación
Clave Clave EncriptadaEncriptada
publicapublica Clave Clave Pública del Pública del ReceptorReceptorClave GeneradaClave Generada
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
Seguridad MensajeríaConfiable
Transacciones
Mensajería
XML
Meta
dato
s
Encriptación de MensajesEncriptación de MensajesReceptorReceptor
Py75c%bn&*)Py75c%bn&*)9|fDe^bDFaq9|fDe^bDFaq#xzjFr@g5=#xzjFr@g5=
&nmdFg$5kn&nmdFg$5knvMd’rkvegMs”vMd’rkvegMs”
Py75c%bn&*)Py75c%bn&*)9|fDe^bDFaq9|fDe^bDFaq#xzjFr@g5=#xzjFr@g5=
&nmdFg$5kn&nmdFg$5knvMd’rkvegMs”vMd’rkvegMs” DescifradoDescifrado
Clave EncriptadaClave Encriptadaprivadaprivada Clave Clave
Privada del Privada del ReceptorReceptor
SimétricaSimétrica
Esto es Esto es un texto un texto
confidencconfidencial, etc.ial, etc.
DescifradoDescifrado
Py75c%bn&*)Py75c%bn&*)9|fDe^bDFaq9|fDe^bDFaq#xzjFr@g5=#xzjFr@g5=
&nmdFg$5kn&nmdFg$5knvMd’rkvegMs”vMd’rkvegMs”
Py75c%bn&*)Py75c%bn&*)9|fDe^bDFaq9|fDe^bDFaq#xzjFr@g5=#xzjFr@g5=
&nmdFg$5kn&nmdFg$5knvMd’rkvegMs”vMd’rkvegMs”
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
Seguridad MensajeríaConfiable
Transacciones
Mensajería
XML
Meta
dato
s
Creación de una Firma DigitalCreación de una Firma Digital
FunciónFunciónHash Hash
(SHA, MD5)(SHA, MD5)
Jrf843kjfgf*Jrf843kjfgf*££$&Hdif*7oU$&Hdif*7oUsd*&@:<CHsd*&@:<CHDFHSD(**DFHSD(**
Py75c%bn&*)9|Py75c%bn&*)9|fDe^bDFaq#xzjFr@gfDe^bDFaq#xzjFr@g5=&nmdFg$5knvMd’r5=&nmdFg$5knvMd’rkvegMs”kvegMs”
Esto es un Esto es un texto texto
confidencialconfidencial
CifradoCifradoAsimétricoAsimétrico
Mensaje o FicheroMensaje o Fichero Firma DigitalFirma DigitalMensaje ‘Digest’ Mensaje ‘Digest’ de 128 bitsde 128 bits
privadaprivada
Verificación de una Firma DigitalVerificación de una Firma Digital
Jrf843kjfJrf843kjfgf*£$&Hdgf*£$&Hdif*7oUsdif*7oUsd
*&@:<CHD*&@:<CHDFHSD(**FHSD(**
Py75c%bn&*)Py75c%bn&*)9|fDe^bDFaq9|fDe^bDFaq#xzjFr@g5=#xzjFr@g5=
&nmdFg$5kn&nmdFg$5knvMd’rkvegMs”vMd’rkvegMs”
Py75c%bn&*)Py75c%bn&*)9|fDe^bDFaq9|fDe^bDFaq#xzjFr@g5=#xzjFr@g5=
&nmdFg$5kn&nmdFg$5knvMd’rkvegMs”vMd’rkvegMs”
DescifradoDescifradoAsimétricoAsimétrico
Firma DigitalFirma Digital
WSE WSE proporcionaproporcionaSeguridad aSeguridad a
Los WSLos WS
Misma función Misma función HashHash
Mensaje OriginalMensaje Original
Py75c%bn&*)Py75c%bn&*)9|fDe^bDFaq9|fDe^bDFaq#xzjFr@g5=#xzjFr@g5=
&nmdFg$5kn&nmdFg$5knvMd’rkvegMs”vMd’rkvegMs”
Py75c%bn&*)Py75c%bn&*)9|fDe^bDFaq9|fDe^bDFaq#xzjFr@g5=#xzjFr@g5=
&nmdFg$5kn&nmdFg$5knvMd’rkvegMs”vMd’rkvegMs”
? == ?? == ?¿Son iguales los ¿Son iguales los
hash?hash?
publicapublica
Mandado Mandado con el con el mensajemensaje
Tokens de SeguridadTokens de Seguridad Los ‘Tokens’ aseguran reclamaciones Los ‘Tokens’ aseguran reclamaciones
sobre identidad, capacidad y privilegiossobre identidad, capacidad y privilegios
FirmadoFirmado
……
X.509X.509 KerberosKerberos
Clave Clave Secreta/CompartidaSecreta/Compartida
PasswordPassword
PruebaPruebaDe PosesiónDe Posesión
ContextoContextoSeguridadSeguridad
Sin FirmarSin Firmar
……Nombre UsuarioNombre Usuario
SAMLSAML XrMLXrML
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
Seguridad MensajeríaConfiable
Transacciones
Mensajería
XML
Meta
dato
s
Autenticación con ‘Tokens’Autenticación con ‘Tokens’
Los ‘Tokens’ están respaldados por Los ‘Tokens’ están respaldados por una “prueba de posesión”una “prueba de posesión” Secreto compartido (password, clave Secreto compartido (password, clave
simétrica)simétrica) Clave privada firmada por un servicio de Clave privada firmada por un servicio de
una tercera parte en la que se confía (CA)una tercera parte en la que se confía (CA)
La Autenticación requiere comprobar La Autenticación requiere comprobar este conocimientoeste conocimiento Validar ‘token’ de nombre-usuario y pwdValidar ‘token’ de nombre-usuario y pwd Verificar la firma digitalVerificar la firma digital
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
Seguridad MensajeríaConfiable
Transacciones
Mensajería
XML
Meta
dato
s
‘‘Token’ Nombre-UsuarioToken’ Nombre-Usuario Método mas simpleMétodo mas simple La password se utiliza para generar La password se utiliza para generar
una clave secreta que firme y encripteuna clave secreta que firme y encripte La Password se puede mandar como La Password se puede mandar como
texto-plano o ‘digest’ (hash)texto-plano o ‘digest’ (hash) WSE también proporciona un mecanismo WSE también proporciona un mecanismo
de detección de reintentosde detección de reintentos WSE crea automaticamente un ‘Windows WSE crea automaticamente un ‘Windows
Principal’ para cada token con password Principal’ para cada token con password en texto planoen texto plano
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
Seguridad MensajeríaConfiable
Transacciones
Mensajería
XML
Meta
dato
s
Autenticación con ‘Token’ de Autenticación con ‘Token’ de Nombre-Usuario Nombre-Usuario de Windowsde Windows
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
Seguridad MensajeríaConfiable
Transacciones
Mensajería
XML
Meta
dato
s
Autenticación en Servicios WebAutenticación en Servicios Web ‘Tokens’ Nombre-Usuario ‘Custom’ ‘Tokens’ Nombre-Usuario ‘Custom’
Crear una clase que derive de la clase Crear una clase que derive de la clase UsernameTokenManagerUsernameTokenManager (*) Comprobar las credenciales del usuario con las (*) Comprobar las credenciales del usuario con las
del repositorio, devolver passworddel repositorio, devolver password Devolver la lista de rolesDevolver la lista de roles Crear un objeto ‘custom’ IPrincipal con rolesCrear un objeto ‘custom’ IPrincipal con roles Adjuntar IPrincipal al token.Principal para usar Adjuntar IPrincipal al token.Principal para usar
seguridad imperativa y basada en políticasseguridad imperativa y basada en políticas
Registrar el TokenManager via Registrar el TokenManager via web.configweb.config
Autenticación con ‘Token’ de Autenticación con ‘Token’ de Nombre-Usuario ‘custom’Nombre-Usuario ‘custom’
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
Seguridad MensajeríaConfiable
Transacciones
Mensajería
XML
Meta
dato
s
Autorización con ‘Tokens’Autorización con ‘Tokens’Principals y RolesPrincipals y Roles
WSE usa SecurityToken.Principal para WSE usa SecurityToken.Principal para realizar una autorizaciónrealizar una autorización Se establece automáticamente para un Se establece automáticamente para un
UserNameToken ó un KerberosSecurityTokenUserNameToken ó un KerberosSecurityToken IPrincipalIPrincipal
Es la base de cualquier autorización a nivel de Es la base de cualquier autorización a nivel de código y seguridad basada en rolescódigo y seguridad basada en roles
Soporte para tipos IPrincipal ‘custom’ (propios)Soporte para tipos IPrincipal ‘custom’ (propios) TokenManagers puede crear y adjuntar el TokenManagers puede crear y adjuntar el
GenericPrincipalGenericPrincipal
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
Seguridad MensajeríaConfiable
Transacciones
Mensajería
XML
Meta
dato
s
Autorización Autorización TécnicasTécnicas
ProgramaciónProgramación……if(token.Principal.IsInRole(“Cajero"))if(token.Principal.IsInRole(“Cajero")){{ // Permite al usuario realizar la acción // Permite al usuario realizar la acción }}… …
Basado en PolíticasBasado en Políticas WSE soporta el uso de Politicas para
Autorización basada en Roles Funciona sin tener que escribir código
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
Seguridad MensajeríaConfiable
Transacciones
Mensajería
XML
Meta
dato
s
Autorización con ‘Token’ de Autorización con ‘Token’ de Nombre-Usuario de WindowsNombre-Usuario de Windowsperteneciendo a Roles perteneciendo a Roles (Grupos Windows, etc.)(Grupos Windows, etc.)
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
Seguridad MensajeríaConfiable
Transacciones
Mensajería
XML
Meta
dato
s
Tokens BinariosTokens Binarios
Tokens X.509Tokens X.509 Proporciona una forma de codificar Proporciona una forma de codificar
certificados X.509certificados X.509 Proporcionados por una CA como Proporcionados por una CA como
Verisign, FNMT ó propia como Verisign, FNMT ó propia como ‘Windows Certificate Services’‘Windows Certificate Services’
Contiene una clave pública y firma Contiene una clave pública y firma digital de una CAdigital de una CA
Soporta encriptación asimétrica y firmaSoporta encriptación asimétrica y firma
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
Seguridad MensajeríaConfiable
Transacciones
Mensajería
XML
Meta
dato
s
Tokens BinariosTokens BinariosTokens KerberosTokens Kerberos Codifica Tickets KerberosCodifica Tickets Kerberos Soporta firmado y cifrado usando una Soporta firmado y cifrado usando una
clave simétricaclave simétrica Obtenido a partir de un Centro de Obtenido a partir de un Centro de
Distribución Kerberos (KDC)Distribución Kerberos (KDC) WSE crea automaticamente el WSE crea automaticamente el
‘Principal’‘Principal’
Tokens ‘Custom’ (Propios)Tokens ‘Custom’ (Propios) WSE soporta ‘custom’ tokens tanto WSE soporta ‘custom’ tokens tanto
binarios como XMLbinarios como XML
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
Seguridad MensajeríaConfiable
Transacciones
Mensajería
XML
Meta
dato
s
Firmas Digitales - IntegridadFirmas Digitales - Integridad
Las firmas requieren crear un hash de Las firmas requieren crear un hash de los datos y encriptar el valor del hash los datos y encriptar el valor del hash con una clave privadacon una clave privada
Se pueden firmar partes de un mensaje Se pueden firmar partes de un mensaje para asegurar integridadpara asegurar integridad Para asegurarnos de que el mensaje no Para asegurarnos de que el mensaje no
ha sido modificado fraudulentamenteha sido modificado fraudulentamente Para asegurarnos de que solamente el Para asegurarnos de que solamente el
emisor ha podido mandarloemisor ha podido mandarlo
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
Seguridad MensajeríaConfiable
Transacciones
Mensajería
XML
Meta
dato
s
Encriptación de XML Encriptación de XML PrivacidadPrivacidad Se puede encriptar partes de un Se puede encriptar partes de un
mensaje para asegurar confidencialidadmensaje para asegurar confidencialidad Se reemplaza texto plano por texto-Se reemplaza texto plano por texto-
cifrado (‘cipher text’)cifrado (‘cipher text’)
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
Seguridad MensajeríaConfiable
Transacciones
Mensajería
XML
Meta
dato
s
Firma y Encriptación con Firma y Encriptación con Certificados X.509Certificados X.509
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
Seguridad MensajeríaConfiable
Transacciones
Mensajería
XML
Meta
dato
s
Conversaciones SegurasConversaciones Seguras WS-SecureConversationWS-SecureConversation
WS-Security no es óptimo para conversaciones de larga WS-Security no es óptimo para conversaciones de larga duración ó multi-mensajesduración ó multi-mensajes
Inicio de una conversación seguraInicio de una conversación segura Comenzar la conversación con WS-SecurityComenzar la conversación con WS-Security Usar entoncces WS-SecureConversation para acordar Usar entoncces WS-SecureConversation para acordar
claves (simétricas) específicas de conversaciónclaves (simétricas) específicas de conversación Concepto similar al inicio de una sesión SSLConcepto similar al inicio de una sesión SSL
WS-TrustWS-Trust Toda la seguridad depende de relaciones de confianzaToda la seguridad depende de relaciones de confianza WS-Trust delega relaciones de confianza a lo largo de WS-Trust delega relaciones de confianza a lo largo de
servicios distribuidosservicios distribuidos Concepto Clave: Servicio de ‘Token’ de SeguridadConcepto Clave: Servicio de ‘Token’ de Seguridad
Tipo de ServicioWeb que otorga, intercambia y valida Tipo de ServicioWeb que otorga, intercambia y valida ‘tokens’ de seguridad‘tokens’ de seguridad
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging Meta
data
Meta
data
XMLXML
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging Meta
data
Meta
data
XMLXML
Security ReliableMessaging
Transactions
Messaging
XML
Meta
data
Obtención de Tokens de SeguridadObtención de Tokens de SeguridadWS-TrustWS-Trust
Define un protocolo para asignar y Define un protocolo para asignar y obtener ‘tokens’ de seguridadobtener ‘tokens’ de seguridad
Utiliza un Servicio de Tokens de Utiliza un Servicio de Tokens de Seguridad (STS) para otorgar TokensSeguridad (STS) para otorgar Tokens Gestiona seguridad a lo largo de fronteras Gestiona seguridad a lo largo de fronteras
confiablesconfiables El Cliente y el Servidor pueden confiar en El Cliente y el Servidor pueden confiar en
el STS sin tener que gestionar una el STS sin tener que gestionar una confianza directaconfianza directa
STS puede gestionar el intercambio de un STS puede gestionar el intercambio de un tipo de token de seguridad por otrotipo de token de seguridad por otro
Alcance de
Alcance de
Confianza
Confianza
Obtención de Tokens de SeguridadObtención de Tokens de Seguridad
Intercambio Tipos de Intercambio Tipos de ‘Tokens’‘Tokens’
Mapeo de ‘Tokens’Mapeo de ‘Tokens’
ClienteCliente
STS STS (Security (Security
Token Token Service)Service)
ServicioServicio
1. RST1. RST
2. RSTR2. RSTR
3. Mensaje3. Mensaje
Creación de Contextos de SeguridadCreación de Contextos de Seguridad
Las claves asimétricas son lentas para Las claves asimétricas son lentas para múltiples mensajesmúltiples mensajes
WS-SecureConversation define un WS-SecureConversation define un token de Contexto de Seguridad (SCT token de Contexto de Seguridad (SCT ó SecurityContext token)ó SecurityContext token) Basado en una clave simétricaBasado en una clave simétrica Mas rápido para múltiples llamadasMas rápido para múltiples llamadas
‘‘Secure-Conversation’Secure-Conversation’
Petición del SCTPetición del SCT
SCT Otorgado al SCT Otorgado al clientecliente
Series de mensajes firmados por el Series de mensajes firmados por el SCT asignadoSCT asignadoClienteCliente ServidorServidor
Uso de WS-SecureConversation con Uso de WS-SecureConversation con WSEWSE
WSE 2.0 – PolicyWSE 2.0 – Policy (Implementación de WS-Security) (Implementación de WS-Security)
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
Seguridad MensajeríaConfiable
Transacciones
Mensajería
XML
Meta
dato
s
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging Meta
data
Meta
data
XMLXML
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging Meta
data
Meta
data
XMLXML
Security ReliableMessaging
Transactions
Messaging
XML
Meta
data
WSE PolicyWSE Policy WS-Policy permite a administradores WS-Policy permite a administradores
establecer requerimientos a los WS de establecer requerimientos a los WS de forma declarativaforma declarativa P.e. “El mensaje debe de estar firmado P.e. “El mensaje debe de estar firmado
por un tipo particular de ‘token’.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 Los gestionadores (handlers) de WSE Policy pueden extenderse derivando Policy pueden extenderse derivando de la clase PolicyAssertionde la clase PolicyAssertion
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging Meta
data
Meta
data
XMLXML
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging Meta
data
Meta
data
XMLXML
Security ReliableMessaging
Transactions
Messaging
XML
Meta
data
PolíticasPolíticasWS-SecurityPolicyWS-SecurityPolicy
Describe los requerimientos de Describe los requerimientos de seguridad de un Servicio-Webseguridad de un Servicio-Web
Proporciona una forma de especificar:Proporciona una forma de especificar: Tipos de Tokens soportadosTipos de Tokens soportados Requerimientos de Firma y cifradoRequerimientos de Firma y cifrado Decisiones de autorización basada en Decisiones de autorización basada en
RolesRoles Requerimientos de Conversaciones Requerimientos de Conversaciones
segurasseguras
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging Meta
data
Meta
data
XMLXML
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging Meta
data
Meta
data
XMLXML
Security ReliableMessaging
Transactions
Messaging
XML
Meta
data
Configuración deConfiguración dePolíticas de Seguridad con la Políticas de Seguridad con la utilidad ‘WSE Settings Tool’ utilidad ‘WSE Settings Tool’
WSE 2.0 – MessagingWSE 2.0 – Messaging (Implementacion de WS-Messaging)(Implementacion de WS-Messaging)
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
SecuritySecurity ReliableMessagingReliable
Messaging TransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
Seguridad MensajeríaConfiable
Transacciones
Mensajería
XML
Meta
dato
s
SecuritySecurity ReliableMessagingReliable
MessagingTransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
SecuritySecurity ReliableMessagingReliable
MessagingTransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
SeguridadMensajeríaConfiable
Transacciones
Mensajería
XML
Meta
dato
s
WSE MessagingWSE Messaging ASMX está ligado a HTTP, RPC, y ASMX está ligado a HTTP, RPC, y
métodosmétodos Hace pensar en términos de Hace pensar en términos de
“cliente/servidor”“cliente/servidor”
WSE 2.0 Messaging ofrece un modelo WSE 2.0 Messaging ofrece un modelo flexibleflexible Basado en Mensaje - (no necesariamente Basado en Mensaje - (no necesariamente
en método)en método) Permite mensajería asíncronaPermite mensajería asíncrona Patrones Propios de intercambio de Patrones Propios de intercambio de
mensajes (MEPs)mensajes (MEPs)
SecuritySecurity ReliableMessagingReliable
MessagingTransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
SecuritySecurity ReliableMessagingReliable
MessagingTransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
SeguridadMensajeríaConfiable
Transacciones
Mensajería
XML
Meta
dato
s
WSE 2.0 incluye un modelo de objetos de WSE 2.0 incluye un modelo de objetos de mensajería basada en SOAPmensajería basada en SOAP
Independencia al protocolo de TransporteIndependencia al protocolo de Transporte TCPTCP HTTPHTTP InProcessInProcess Otros protocolos a integrar… (SMTP, UDP, etc.)Otros protocolos a integrar… (SMTP, UDP, etc.)
Independencia del ‘Host’Independencia del ‘Host’ Aplicación WindowsAplicación Windows ASP.NET (Hosting con IIS)ASP.NET (Hosting con IIS) Servicio WindowsServicio Windows Este hosting es comparable al de .NET RemotingEste hosting es comparable al de .NET Remoting
WSE MessagingWSE MessagingSecuritySecurity Reliable
MessagingReliable
MessagingTransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
SecuritySecurity ReliableMessagingReliable
MessagingTransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
SeguridadMensajeríaConfiable
Transacciones
Mensajería
XML
Meta
dato
s
Emisores y ReceptoresEmisores y Receptores WSE permite pensar en términos de WSE permite pensar en términos de
“emisores” y “receptores”“emisores” y “receptores” Algunos nodos “envían” mientras otros Algunos nodos “envían” mientras otros
“reciven” mensajes“reciven” mensajes Los Roles son completamente Los Roles son completamente
intercambiables (p.e. Apps Peer-To-Peer)intercambiables (p.e. Apps Peer-To-Peer) Se exponen via SoapSender y Se exponen via SoapSender y
SoapReceiverSoapReceiver
EmisorEmisor Receptor y Receptor y EmisorEmisor ReceptorReceptor
SecuritySecurity ReliableMessagingReliable
MessagingTransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
SecuritySecurity ReliableMessagingReliable
MessagingTransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
SeguridadMensajeríaConfiable
Transacciones
Mensajería
XML
Meta
dato
s
Neutralidad en el TransporteNeutralidad en el Transporte
WSE 2.0 hace posible mandar mensajes WSE 2.0 hace posible mandar mensajes sobre múltiples transportessobre múltiples transportes ‘‘In-proc’, TCP, y HTTP (‘out-of-the-box’)In-proc’, TCP, y HTTP (‘out-of-the-box’) Transportes ‘custom’ tambiénTransportes ‘custom’ también
Intermediarios SOAPIntermediarios SOAP
Emisor Emisor
inicialinicial
ReceptorReceptor
finalfinal
HTTPHTTPSMTPSMTP
MSMQMSMQ
FTPFTP
SecuritySecurity ReliableMessagingReliable
MessagingTransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
SecuritySecurity ReliableMessagingReliable
MessagingTransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
SeguridadMensajeríaConfiable
Transacciones
Mensajería
XML
Meta
dato
s
WSE 2.0 MessagingWSE 2.0 Messaging
SoapSender y SoapReceiverSoapSender y SoapReceiver Mensajes en un sentidoMensajes en un sentido Programación a bajo nivelProgramación a bajo nivel
SoapClient y SoapServiceSoapClient y SoapService Mensajes Un-Sentido y Dos-SentidosMensajes Un-Sentido y Dos-Sentidos Basados en SoapSender/SoapReceiverBasados en SoapSender/SoapReceiver
SoapReceiverSoapReceiver SoapReceiver encapsula el proceso de SoapReceiver encapsula el proceso de
recepción de un mensaje SOAP en recepción de un mensaje SOAP en particularparticular
public class ReceptorCalculadora : SoapReceiverpublic 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(Uri UriReceptor = new EndpointReference( new Uri("soap.tcp://localhost/Calc"));new Uri("soap.tcp://localhost/Calc"));ReceptorCalculadora receptCalc = new ReceptorCalculadora receptCalc = new ReceptorCalculadora();ReceptorCalculadora();SoapReceivers.Add(UriReceptor, receptCalc);SoapReceivers.Add(UriReceptor, receptCalc);......
SecuritySecurity ReliableMessagingReliable
MessagingTransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
SecuritySecurity ReliableMessagingReliable
MessagingTransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
SeguridadMensajeríaConfiable
Transacciones
Mensajería
XML
Meta
dato
s
SoapSenderSoapSender SoapSender encapsula el proceso de SoapSender encapsula el proceso de
envío de un mensaje SOAP a un URI envío de un mensaje SOAP a un URI
......SoapEnvelope sobre = CrearMensajeSuma();SoapEnvelope sobre = CrearMensajeSuma();sobre.Context.Action = "urn:calc:sumar";sobre.Context.Action = "urn:calc:sumar";SoapSender ss = new SoapSender(new SoapSender ss = new SoapSender(new EndpointReference( EndpointReference( Uri("soap.tcp://localhost/calc")));Uri("soap.tcp://localhost/calc")));ss.Send(sobre);ss.Send(sobre);......
SecuritySecurity ReliableMessagingReliable
MessagingTransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
SecuritySecurity ReliableMessagingReliable
MessagingTransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
SeguridadMensajeríaConfiable
Transacciones
Mensajería
XML
Meta
dato
s
Messaging a Bajo Nivel (SoapSender Messaging a Bajo Nivel (SoapSender y SoapReceiver) de un Patrón y SoapReceiver) de un Patrón Emisor-Receptor de p.e. ‘Suscripción Emisor-Receptor de p.e. ‘Suscripción a Valores de Bolsa’a Valores de Bolsa’
SoapClient y SoapServiceSoapClient y SoapService SoapClient y SoapService ofrecen SoapClient y SoapService ofrecen
abstracciones de mas alto nivelabstracciones de mas alto nivel Basado en SoapSender y SoapReceiverBasado en SoapSender y SoapReceiver Petición/Respuesta automática y mensajes Petición/Respuesta automática y mensajes
correlacionadoscorrelacionados
public class ServicioCalc : SoapServicepublic 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í }} ......}}
SecuritySecurity ReliableMessagingReliable
MessagingTransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
SecuritySecurity ReliableMessagingReliable
MessagingTransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
SeguridadMensajeríaConfiable
Transacciones
Mensajería
XML
Meta
dato
s
Messaging a Alto Nivel (SoapClient y Messaging a Alto Nivel (SoapClient y SoapService) de un Patrón ‘Servicio-SoapService) de un Patrón ‘Servicio-Cliente’ de p.e. ‘Suscripción a Cliente’ de p.e. ‘Suscripción a Valores de Bolsa’Valores de Bolsa’
WseWsdl2.exeWseWsdl2.exe
WseWsdl2.exe genera código WseWsdl2.exe genera código SoapClient a partir de definiciones SoapClient a partir de definiciones WSDLWSDL El código generado contiene una clase que El código generado contiene una clase que
deriva de SoapClientderiva de SoapClient Utilizar esta clase para enviar mensajes Utilizar esta clase para enviar mensajes
SOAP a receptores SOAP vía WSE 2.0SOAP a receptores SOAP vía WSE 2.0
SecuritySecurity ReliableMessagingReliable
MessagingTransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
SecuritySecurity ReliableMessagingReliable
MessagingTransactionsTransactions
Messaging Messaging
Meta
data
Meta
data
XMLXML
SeguridadMensajeríaConfiable
Transacciones
Mensajería
XML
Meta
dato
s
Messaging a Alto Nivel Messaging a Alto Nivel (SoapClient y SoapService) con (SoapClient y SoapService) con Hosting de ISS por HTTP (y con Hosting de ISS por HTTP (y con WebReference y Clase Proxy en WebReference y Clase Proxy en cliente)cliente)
¿Donde estamos?¿Donde estamos?
Microsoft's Web Services Microsoft's Web Services Enhancements (WSE 2.0) proporciona Enhancements (WSE 2.0) proporciona implementaciones de parte de implementaciones de parte de WS-* para utilizarlo con .NET hoyWS-* para utilizarlo con .NET hoy
WSE 2.0 extiende el framework de WSE 2.0 extiende el framework de WebMethods (ASMX)WebMethods (ASMX)
WSE 2.0 puede utilizarse sin .ASMX, WSE 2.0 puede utilizarse sin .ASMX, p.e. con Messaging-TCP p.e. con Messaging-TCP
•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
•www.DesarrollaConMSDN.comwww.DesarrollaConMSDN.com•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
•www.DesarrollaConMSDN.comwww.DesarrollaConMSDN.com•Código de MSDN VideoCódigo de MSDN Video•CalendarioCalendario•TutorialesTutoriales•SeminariosSeminarios•ForosForos•Descuento 40% librosDescuento 40% libros
SepSep OctOct NoNovv
DicDic EneEne FebFeb MaMarr
AbrAbr MaMayy
JunJun
.NET y .NET y Servicios Servicios
WebWeb
Desarrollo Desarrollo webweb
SmartSmartClientsClients
Visual Studio Visual Studio 20052005
SQL Server 2005SQL Server 2005
César de la TorreCésar de la TorreSoftware ArchitectSoftware Architect
[MVP - .NET XML WebServices][MVP - .NET XML WebServices]
[MCSE] [MCT][MCSE] [MCT]
ctorre@renacimiento.comctorre@renacimiento.com
RenacimientoRenacimiento
ContactoContacto- Consultoría- Consultoría-- Proyectos- Proyectos-- Formación- Formación
SOPORTE como MVP en NEWS SOPORTE como MVP en NEWS publicas:publicas:
msnews.microsoft.commsnews.microsoft.com
microsoft.public.es.servicios.webmicrosoft.public.es.servicios.web
top related