SlideShare una empresa de Scribd logo
1 de 169
Arquitectura de Servicios Web José Miguel Selman G. j [email_address] Conceptos, Aplicaciones, Buenas Prácticas,  Actualidad y Tendencias
Temario ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Presentaciones ,[object Object],[object Object],[object Object]
Acerca de Mí ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Introducción ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Pero ha evolucionado… Web Web 2.0 ¿Web 3.0? ?
Motivación ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Evolución computación distribuída (Hacia Servicios Web) * Fuente:  “J2EE Web Services on BEA Weblogic”, Anjali Anagol-Subbarao  E-Mail EDI RPCs Corba COM XML SOAP WSDL WS-Stack RMI 1997 1990 1970 2000 1980 (*)
Definiendo Servicios Web ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
WS como Componentes Remotos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Quién es Quién ,[object Object],[object Object],www.ws-i.org ,[object Object],[object Object],www.ietf.org ,[object Object],[object Object],www.oasis-open.org ,[object Object],[object Object],www.w3c.org
Quienes aparecen siempre… Y muchos otros…
Características de los Servicios Web ,[object Object],[object Object],[object Object],[object Object],[object Object]
Características de los Servicios Web ,[object Object],[object Object],[object Object]
Características de los Servicios Web ,[object Object],[object Object],[object Object],[object Object]
Características de los Servicios Web ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Características de los Servicios Web ,[object Object],[object Object],[object Object],[object Object]
[object Object]
Ciclo de Vida Servicios Registro o  Directorio Proveedor del  Servicio Consumidor del Servicio 1. Desarrollo servicio e interfaz 5. Desarrollo aplicación cliente 2. Publica servicio en el directorio 3. Busca proveedor de servicio.  4. Listado de proveedores de servicio y descripciones. 6. Requiere Servicio 7. Provee Servicio
Otras Preocupaciones
Framework de Servicios Web ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Arquitectura Conceptual Comunicaciones HTTP, SMTP, FTP, JMS, IIOP, … Mensajes Extensiones SOAP Entrega Confiable, Correlación, Transacciones… SOAP Descripciones WSDL Procesos Descubrimiento, Agregación, Coreografía, … XML, DTD, XML Schema S E G U R I D A D A D M I N I S T R A C I Ó N
¿Qué provee la Arquitectura? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Recordemos que… ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
WSDL ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
WSDL types message portTypes bindings port service Definiciones Abstractas Definiciones Concretas Documento WSDL Declaraciones de Tipos de datos  (“dataTypes”) Definición de los mensajes en términos de los “dataTypes” Definición de las operaciones soportadas y los mensajes que forman parte de las mismas Protocolo usado para implementar un “portType” y el formato de los mensajes Asocia una dirección concreta con un “binding” Define los “ports” que proveen el servicio
WSDL Service Port (e.g. http://host/svc) Binding (e.g. SOAP) Interfaz Abstracta portType operation(s) inMesage outMessage Port Binding
[object Object]
SOAP ,[object Object],[object Object],[object Object]
Introducción : SOAP ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Estructura: Flexible y Extensible ,[object Object],[object Object],[object Object],Transporte (HTTP, SMTP, FTP, MQ, etc.) Envelope  (XML) Header Body ,[object Object],[object Object],[object Object],[object Object]
Ejemplos SOAP
Extensión: SOAP with Attachments ,[object Object],[object Object],[object Object],[object Object],[object Object]
Extensión : SOAP with Attachments ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
SOAP
SOAP
UDDI ,[object Object],[object Object],[object Object],[object Object]
UDDI ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
UDDI ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Consultas UDDI
Problemas UDDI ,[object Object],[object Object],[object Object],[object Object]
En Resumen: ¿Qué va en el cable hasta ahora? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],SOAP  Seguridad Attachments Confiabilidad Ruteo Transacciones Contexto W3C
Piezas Faltantes: WS-* ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Seguridad en Servicios Web
Seguridad como un habilitador ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Arquitectura General Aplicaciones Empresariales Clientes Servidor Web Servidor App. Servidor App. Servidor App. Acceso Datos Conectores a Sistemas Legacy Bases de Datos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Plataformas Predominantes: J2EE y .NET
¿De qué debemos proteger nuestras aplicaciones? Violación de Confidencialidad Violación de Integridad Ataque de Repetición
Ataques Aplicaciones Ataque del Intermediario  (conocido como “Man in the Middle”)
Ataque típicos Aplicaciones Web ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Requerimientos de Seguridad ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Desafíos de Seguridad Servicios Web ,[object Object],[object Object],[object Object]
Seguridad a través de múltiples Servicios y múltiples transportes ,[object Object],[object Object],Usuario Sitio Web Servicio Web HTTP JMS Physical Data Link Network Transport Session Presentation Application Physical Data Link Network Transport Session Presentation Application Contexto de Seguridad 1 Contexto de Seguridad 2 …
Seguridad para Servicios Web ,[object Object],[object Object],[object Object],[object Object],[object Object]
Interrelación Tecnologías/Especificaciones de Seguridad Servicios Web … TCP/IP Capa de Transporte (HTTP, FTP, SMTP, MQ, etc.) Seguridad Capa de Transporte (TLS/SSL) XML Signature XML Encryption SOAP WS Security SAML XKMS Otras Alto Nivel Infraestructura de Red Frameworks XML Fuente:  “Securing Web Services With WS-Security. Demystifying WS-Security, WS-Policy, SAML, XML Signature, and XML Encryption”, Jothy Rosenberg and David Remy
WS-Security ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
El encabezado  WS-Security ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ejemplo Sobre SOAP WS-Security <S:Envelope> <S:Header> <wsse:Security> <wsse:UsernameToken> … </wsse:UsernameToken> <ds:Signature> … </ds:Signature> … <xenc:ReferenceList> … <xenc:DataReference URI=”#body”/> … </xenc:ReferenceList> </wsse:Security> </S:Header> <S:Body> <xenc:EncryptedData Id=”body” Type=”content”> … </xenc:EncryptedData> </S:Body> </S:Envelope>
Algunos ejemplos <wsse:Security> <wsse:UsernameToken> <wsse:Username>jselman</wsse:Username> <wsse:Password>1234</wsse:Password> </wsse:UsernameToken> </wsse:Security> <wsse:Security> <wsse:UsernameToken> <wsse:Username>jselman</wsse:Username> <wsse:PasswordType=”wsse:PasswordDigest”> D2A12DFE8D90FC6… </wsse:PasswordType> <wsse:Nonce>EFD89F06CCB28C89</wsse:Nonce> <wsu:Created>2005-05-08T20:21:23Z</wsu:Created> </wsse:UsernameToken> </wsse:Security>
Opciones de Seguridad Capa de Transporte Servicio de Seguridad Tecnologías Integridad SSL/TLS Confidencialidad SSL/TLS Autenticación Proveedor (Servidor) SSL/TLS Autenticación Consumidor (Cliente) SSL/TLS con autenticación de cliente HTTP Basic HTTP Digest HTTP Attributes SSL/TLS HTTP Basic HTTP Digest
Opciones de Seguridad Capa de Mensajería Servicio de Seguridad Tecnologías Integridad XML Signature S/MIME PKCS#7 Confidencialidad XML Encryption Autenticación del Emisor SOAP (Cliente) XML Encryption username & [password|digest] username  & [password|digest] Certificado X.509 Token de Seguridad Kerberos SAML REL Etc.
Comparación Seguridad Según Capa Seguridad de Transporte Seguridad de Mensajería Punto a Punto Destino a Destino Madura, su implementación es relativamente directa Nueva, relativamente compleja con muchas opciones de seguridad No granular, enfoque del todo o nada Muy granular, puede aplicar selectivamente a trozos de mensajes y solamente a los requerimientos o respuestas Dependiente del Transporte La misma estrategia puede aplicarse a distintas tecnologías de transporte
Seguridad Capa de Mensajería ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Composición de Servicios Web
Composición ,[object Object],[object Object],[object Object],[object Object]
Historia de los estándares de Procesos de Negocio 2000/05 XLang (Microsoft) 2001/03 BPML (Intallio) 2001/05 WSFL (IBM) 2001/06 BPSS (ebXML) 2002/03 BPEL4WS 1.0   (IBM, Microsoft) BPEL4WS 1.1 (OASIS) 2002/06 2003/01 WS-Choreography (W3C) 2003/04 WSCI (Sun et al) WSCL (HP) 2002/08
Servicios Web como procesos de negocio Servicio Web 1 Servicio Web   2 Servicio Web   3 Servicio Web   4 Servicio Web   5 Servicio Web   n
Problema Tipo Cliente Servicio de Compra Servicio Crédito Servicio de Inventario Consolidación de Resultados Orden de Compra Check Crédito Reservar Inventario Respuesta Crédito Respuesta Inventario Factura
Desafío de los Procesos de Negocio ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Orquestación vs Coreografía ,[object Object],[object Object],[object Object],[object Object]
Ejemplo: Orden de compra Orden de Compra Requerimiento de Orden de Compra Ack de recepción Respuesta a la orden de compra Negocio   “A” Negocio  “ B”
Visto como Coreografía OC Request OC Acknowledgement OC Response Coreografía  – Las públicas y visibles interacciones de intercambio de mensajes  Proceso Público Negocio A Negocio B Envío  OC Recepción OC Ack Recepción  respuesta OC Recepción  OC Envío OC Ack Envío respuesta OC
Visto como Orquestación Envío  OC Recepción OC Ack Recepción respuesta OC Transformación Transformación Desde  ERP Hacia ERP OC Request OC Acknowledgement OC Response Orquestación  – Es un proceso de negocio privado ejecutable Proceso Privado Business  BPEL Workflow
Orquestación y Coreografía juntos Envío OC Recepción OC Ack Recepción respuesta OC Transform Transform Negocio A BPEL Workflow OC Request OC Acknowledgement OC Response Generación Plantilla BPEL  Generación Plantilla BPEL  Recepción  OC Envío OC Ack envíoRecepción Respuesta OC Transform Transform Negocio B BPEL Workflow Dos Workflow BPEL que muestran acuerdo entre negocios Negocio B Business Analyst Tool Negocio A
BPEL ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Proposición de BPEL ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Estándares que construyen BPEL Description HTTP,IIOP, JMS, SMTP Transport XML Message SOAP WSDL UDDI Discovery Transactions Coordination WS-Security WS-Reliability Quality of Service Business Processes Context Description Management Orchestration - BPEL4WS Choreography - CDL4WS
Actividades BPEL ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Partners/socios ,[object Object],[object Object],Servicio Crédito Partner 2 Servicio Inventario Partner 3 Partner 1 (el proceso) Servicio Compra
Variables ,[object Object],[object Object],[object Object],Customer Service Process <variable> <activity> <activity> Persist Persist/ Retrieve Customer Service Persist/ Retrieve Persist/ Retrieve <variable> <A> <B>
Ejemplo documento BPEL
En Resumen . . . ,[object Object],[object Object],[object Object],Partner WSDL 1 WSDL del Proceso Partner WSDL n Escenario BPEL <process> <partners>  <variables> <sequence> <flow> </sequence> </process> Servidor de Aplicaciones ejecución BPEL BPEL Compilado
 
BPEL4People ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
¿Donde Vamos? ,[object Object],[object Object],[object Object],Interfaz Calidad de Servicio  Servicio Flujo Público Flujo/Composición Acuerdos WSDL BPEL XML Schema Administración Seguridad
WS-I Web Services Interoperability http://www.ws-i.org/
[object Object],[object Object],[object Object],[object Object],[object Object],What is WS-I? WS-I Web Services Interoperability
WS-I, Standards, and Industry WS-I Web Services Interoperability
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],WS-I Goals WS-I Web Services Interoperability: ¿Objetivo?
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],WS-I Value Proposition WS-I Web Services Interoperability: ¿Objetivos?
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Deliverables WS-I Web Services Interoperability: ¿Entregables?
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],WS-I Web Services Interoperability:  Detrás de cámaras…
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Current Working Groups WS-I Web Services Interoperability:  Detrás de cámaras…
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Delivered to Date WS-I Web Services Interoperability: Perfiles
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Delivered to Date WS-I Web Services Interoperability: Perfiles
WS-I’s Work to Date Composition/Orchestration Business  Process Orchestration Portals Management XML, SOAP XML Schema, WSDL, UDDI, SOAP with Attachments HTTP, HTTPS, Others Invocation Description Transports Composable  Service  Elements Transactionality WS-Security Reliable  Messaging Endpoint Identification, Publish/Subscribe Messaging Additional Capabilities WS-I Web Service Interoperability
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Business Value of WS-I  Conformance WS-I Web Service Interoperability
Recapitulando … ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Recapitulando … ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Manos a la obra …
Aplicaciones/Frameworks ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Java EE: Un servicio en 2 minutos ,[object Object],[object Object],[object Object]
WS con NetBeans
Vista de Diseño
Probando nuestro Servicio
Recomendaciones y Buenas Prácticas
Exponer sólo lo necesario ,[object Object],[object Object],[object Object],[object Object],[object Object]
Recomendaciones y Buenas Prácticas ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Definir interfaces estables ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Separación de Responsabilidades ,[object Object],[object Object],public boolean esFeriadoLegal(Date date) throws UnauthorizedException { ExecutionContext ec = getCurrentExecutionContext(); SOAPDocument request = ec.getCurrentMessage(); String username = getUsernameFromSoapMessage(request); String password = getPasswordFromSoapMessage(request); if ( !canUseService(username, password) ) { throw new UnauthorizedException(“Access Denied for given credentials”); } boolean isFeriado = AccesorBaseDeDatos.getFeriado(date); return isFeriado; } Código Servicio
Conocer las Limitaciones  ,[object Object]
Identificar, Clasificar y Catalogar ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
La importancia de un Repositorio ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Cuando evitar Web Services ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Aplicaciones y Extensiones
Ontología OWL-S ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
OWL-S: Profile ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
OWL-S: Model ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
OWL-S: Grounding ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
OWL-S: Relación WSDL Más información: http://www.w3.org/Submission/2004/SUBM-OWL-S-20041122/
Discusión OWL-S ,[object Object]
Introducción a Grid Services
Grid Services ,[object Object],[object Object],[object Object],[object Object]
Grid Services ,[object Object],[object Object],[object Object],[object Object],[object Object]
Grid Services ,[object Object],[object Object],[object Object],[object Object],[object Object]
Grid Services:  Grid Middleware ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Grid Services (Middleware) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Infraestructura Grid: Vista Conceptual Más Información: http://www.globus.org/ogsa/
Portales y WSRP http://www.ibm.com/developerworks/webservices/library/ws-wsrp/
Otra Dimensión de Servicios Web:  Portales y WSRP ,[object Object],[object Object],[object Object],[object Object],[object Object]
WSRP: Productores y Consumidores
Portal con WSRP
Rich Internet Applications:  Ajax, REST y más …
Rich Internet Applications ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Aplicaciones RIA
Modelo Síncrono Actividad de Usuario Actividad de Usuario Actividad de Usuario Procesamiento  en Servidor Procesamiento  en Servidor
Modelo Asíncrono Browser Motor AJAX Input Usuario 1 Input Usuario 2 Render Respuesta 1 Render Respuesta 2 Procesamiento  en Servidor Procesamiento  en Servidor
AJAX ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Y muchos más…
REST ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
JSON ,[object Object]
Otras Plataformas RIA www.javafx.com silverlight.net www.adobe.com/es/products/flex/ www.adobe.com/es/products/air/ Y muchas más…
Preguntas
Bibliografía ,[object Object],[object Object],[object Object],[object Object],[object Object]
XML Signature ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Tipos de Firmas XML Signature <Signature> <Reference> <ElementoFirmado> Enveloping <ElementoEnvolvente> <Signature> <Reference> Enveloped <DocumentoXML> <Signature> <Reference> Detached <ElementoDestino>
Canonicalización ,[object Object],[object Object],[object Object],<OrdenDeCompra> <Productos>  <CodProducto>  SKU10023  </CodProducto>  </Productos> </OrdenDeCompra> <OrdenDeCompra><Productos> <CodProducto>SKU10023</CodProducto></Productos></OrdenDeCompra>
Estructura XML Signature <Signature ID?> <SignedInfo> <CanonicalizationMethod/> <SignatureMethod/> (<Reference> (<Transforms>)? <DigestMethod> <DigestValue> </Reference>)+ </SignedInfo> <SignatureValue> (<KeyInfo>)? (<Object ID?>)* </Signature>
XML Signature: Enveloped <OrdenDeCompra id=” ODC200504251002 ”> <SKU>12345678</SKU> <Cantidad>17</Cantidad> <Signature xmlns=”http://www.w3.org/2000/09/xmldsig#”> <SignedInfo>   <Reference URI=” #ODC200504251002 ”/> </SignedInfo> <SignatureValue>…</SignatureValue> <KeyInfo>…</KeyInfo> </Signature> </OrdenDeCompra>
XML Signature: Enveloping <Signature xmlns=”http://www.w3.org/2000/09/xmldsig#”> <SignedInfo> <Reference URI=” #10022334 ”/> </SignedInfo> <SignatureValue>…</SignatureValue> <KeyInfo>…</KeyInfo> <Object> <SignedItem id=” 10022334 ”>Información a ser Firmada</SignedItem> </Object> </Signature>
XML Signature: Detached <Signature xmlns=”http://www.w3.org/2000/09/xmldsig#”> <SignedInfo> <Reference URI=” http://www.jselman.com/imagen.jpg ”/> </SignedInfo> <SignatureValue>…</SignatureValue> <KeyInfo>…</KeyInfo> </Signature>
Recomendaciones Seguridad XML Signature ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ejemplo XML Signature
XML Encryption ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Estructura XML Encryption <EncryptedData Id? Type? MimeType? Encoding?> <EncryptionMethod/>? <ds:KeyInfo> <EncryptedKey>? <AgreementMethod>? <ds:KeyName>? <ds:RetrievalMethod>? <ds:*>? </ds:KeyInfo> <CipherData> <CipherValue>? <CipherReference URI?>? </CipherData> <EncryptionProperties>? </EncryptedData>
Ejemplo XML Encryption <purchaseOrder> <Order>  <Item>book</Item> <Id>123-958-74598</Id> <Quantity>12</Quantity> </Order>  <Payment>  <CardId> 123654-8988889-9996874 </CardId> <CardName>visa</CardName> <ValidDate>12-10-2004</ValidDate> </Payment> </purchaseOrder>  <PurchaseOrder> <Order>  <Item>book</Item> <Id>123-958-74598</Id> <Quantity>12</Quantity> </Order> <EncryptedData Type='http://www.w3.org/2001/04/xmlenc#Element‘ xmlns='http://www.w3.org/2001/04/xmlenc#'>  <CipherData>  <CipherValue>A23B45C564587</CipherValue>  </CipherData>  </EncryptedData> </PurchaseOrder>
XKMS ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],PKI Servicios Web  XKMS Aplicaciones
SAML ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Aserciones SAML ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ejemplo Aserción de Autenticación <saml:Assertion MajorVersion=”1” MinorVersion=”0” AssertionID=”10.254.1.101.12345” Issuer=”jselman.com” IssueInstant=”2005-05-07T22:02:00Z”> <saml:Conditions NotBefore=”2005-05-07T22:02:00Z” NotAfter=”2005-05-07T22:09:00Z” /> <saml: AuthenticationStatement AuthenticationMethod =”password” AuthenticationInstant =”2005-05-07T22:02:00Z”> <saml:Subject> <saml: NameIdentifier  SecurityDomain=” jselman.com ”    Name=” José Miguel ” /> </saml:Subject> </saml:AuthenticationStatement> </saml:Assertion>
Arquitectura SAML SAML Aserción de Autenticación Aserción de Atributos Aserción de Autorización Autoridad de  Autenticación Autoridad de  Atributos Punto de Decisión de Políticas (PDP) Recolector de  Credenciales Entidad de Sistema Punto de Hacer Valer Políticas (PEP) Requerimiento Aplicación Política Política Política
Ejemplo XML Encryption <Alumno> <Nombre>José Miguel Selman</Nombre> <AñoIngreso>1999</AñoIngreso> <Matricula> <EncryptedData id=” matricula ” Type=”http://www.w3.org/2000/09/xmldsig#content”> <EncryptionMethod Algorithm=”…”/> <CipherData><CipherValue>…</CipherValue></CipherData> </EncryptedData> </Matricula> <NotaExamen> <EncryptedData id=” notaexamen ” Type=”http://www.w3.org/2000/09/xmldsig#content”> <EncryptionMethod Algorithm=”…”/> <CipherData><CipherValue>…</CipherValue></CipherData> </EncryptedData> </NotaExamen> <EncryptedKey> <EncryptionMethod Algorithm=”…”/> <CipherData> <CipherValue>…</CipherValue> </CipherData> <ReferenceList> <DataReference URI=” #matricula ”/> <DataReference URI=” #notaexamen ”/> </ReferenceList> </EncryptedKey> </Alumno>
Token SAML <S:Envelope xmlns:S=&quot;...&quot;> <S:Header> <wsse:Security xmlns:wsse=&quot;...&quot;> <saml:Assertion  MajorVersion=&quot;1&quot;  MinorVersion=&quot;0&quot;  AssertionID=&quot;SecurityToken-ef912422&quot;  Issuer=&quot;jselman&quot;  IssueInstant=&quot;2005-05-14T16:47:05.6228146-07:00&quot;  xmlns:saml=&quot;urn:oasis:names:tc:SAML:1.0:assertion&quot;> ... </saml:Assertion> ... </wsse:Security> </S:Header> <S:Body> ... </S:Body> </S:Envelope>
Username Token <wsse:Security> <wsse:UsernameToken> <wsse:Username>jselman</wsse:Username> <wsse:PasswordType=”wsse:PasswordDigest”> D2A12DFE8D90FC6… </wsse:PasswordType> <wsse:Nonce>EFD89F06CCB28C89</wsse:Nonce> <wsu:Created>2005-05-08T20:21:23Z</wsu:Created> </wsse:UsernameToken> </wsse:Security>
Token eXtensible Rights Markup Language <S:Envelope> <S:Header> <wsse:Security> <r:license licenseId=”urn:foo:SecurityToken:ab12345”> <r:grant> <r:keyHolder> <r:info> <ds:KeyValue>…</ds:KeyValue> </r:info> </r:keyHolder> <r:possessProperty/> <sx:commonName>José Miguel Selman</sx:commonName> </r:grant> <r:issuer> <ds:Signature>…</ds:Signature> </r:issuer> </r:license> <ds:Signature> <ds:SignedInfo> … <ds:Reference URI=”#msgBody”> … </ds:Reference> … </ds:SignedInfo> … <ds:KeyInfo> <wsse:SecurityTokenReference> <wsse:Reference URI=”urn:foo:SecurityToken:ab12345” ValueType=”r:license”/> </wsse:SecurityTokenReference> </ds:KeyInfo> </ds:Signature> </wsse:Security> </S:Header> <S:Body wsu:Id=”msgBody”> <PictureRequest xmlns=”http://www.jselman.com/pics”> <Picture format=”image/gif”> AxE1TrsRGGH… </Picture> </PictureRequest> </S:Body> </S:Envelope>
Token Certificado X509 <wsse:BinarySecurityToken ValueType=”wsse:X509v3” EncodingType=”wsse:Base64Binary”> NIFEPzCCA9CrAwIBAgIQEmtJZc0… </wsse:BinarySecurityToken>
Token XCBF <S:Envelope xmlns:S=&quot;...&quot;> <S:Header> <wsse:Security xmlns:wsse=&quot;...&quot;> <wsse:XCBFSecurityToken xmlns:wsse=&quot;http://schemas.xmlsoap.org/ws/2002/04/secext&quot; Id=&quot;XCBF-biometric-object&quot; ValueType=&quot;wsse:XCBFv1&quot; EncodingType=&quot;wsee:XER&quot;> <BiometricSyntaxSets> <BiometricSyntax> <biometricObjects> <BiometricObject> <biometricHeader> <version> 0 </version> <recordType> <id> 4 </id> </recordType> <dataType> <processed/> </dataType> <purpose> <audit/> </purpose> <quality> -1 </quality> <validityPeriod> <notBefore> 1980.10.4 </notBefore> <notAfter>2003.10.3.23.59.59</notAfter> </validityPeriod> <format> <formatOwner> <oid> 2.23.42.9.10.4.2 </oid> </formatOwner> </format> </biometricHeader> <biometricData>  0A0B0C0D0E0F1A1B1C1D1E1F2A2B2C2D2E2F </biometricData> </BiometricObject> </biometricObjects> </BiometricSyntax> </BiometricSyntaxSets> </wsse:XCBFSecurityToken> </wsse:Security> </S:Header> <S:Body> ... </S:Body> </S:Envelope>
WS-Security Timestamps <S:Envelope> <S:Header> <wsse:Security> … <wsu:Timestamp> <wsu:Created>2005-05-14T19:31:22Z</wsu:Created> <wsu:Expires>2005-05-14 T19:46:22Z</wsu:Expires> </wsu:Timestamp> … </wsse:Security> </S:Header> </S:Envelope>
Especificaciones WS-* ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Triángulo Seguridad Distribuida
Framework de Seguridad Web Services Especificaciones Base Web Services WS Security WS-Policy WS-Trust WS-Privacy WS-SecureConversation WS-Federation WS-Authorization HOY

Más contenido relacionado

La actualidad más candente (19)

Java Web Services - Introduccion
Java Web Services - IntroduccionJava Web Services - Introduccion
Java Web Services - Introduccion
 
Java Web Services - REST
Java Web Services - RESTJava Web Services - REST
Java Web Services - REST
 
Servicios web
Servicios webServicios web
Servicios web
 
Servicios SOA
Servicios SOAServicios SOA
Servicios SOA
 
Windows communication foundation (wcf)
Windows communication foundation (wcf)Windows communication foundation (wcf)
Windows communication foundation (wcf)
 
Servicios web xml
Servicios web xmlServicios web xml
Servicios web xml
 
Servidor web
Servidor webServidor web
Servidor web
 
Desarrollo y consumo de servicios web asp.net
Desarrollo y consumo de servicios web asp.netDesarrollo y consumo de servicios web asp.net
Desarrollo y consumo de servicios web asp.net
 
Curso: Programación Web con Tecnología Java
Curso:  	Programación Web con Tecnología JavaCurso:  	Programación Web con Tecnología Java
Curso: Programación Web con Tecnología Java
 
12-Unidad 3: Webservices-3.3 Inicio del Proyecto
12-Unidad 3: Webservices-3.3 Inicio del Proyecto12-Unidad 3: Webservices-3.3 Inicio del Proyecto
12-Unidad 3: Webservices-3.3 Inicio del Proyecto
 
Pruebas soap
Pruebas soapPruebas soap
Pruebas soap
 
Windows communication foundation
Windows communication foundationWindows communication foundation
Windows communication foundation
 
Windows communication foundation
Windows communication foundationWindows communication foundation
Windows communication foundation
 
Modernizacion Oracle Forms
Modernizacion Oracle FormsModernizacion Oracle Forms
Modernizacion Oracle Forms
 
Servidor web
Servidor webServidor web
Servidor web
 
Java2 servicios web
Java2 servicios webJava2 servicios web
Java2 servicios web
 
Web Services
Web ServicesWeb Services
Web Services
 
Implementación de Servicios Web Semánticos para Arquitecturas SOA
Implementación de Servicios Web Semánticos para Arquitecturas SOAImplementación de Servicios Web Semánticos para Arquitecturas SOA
Implementación de Servicios Web Semánticos para Arquitecturas SOA
 
Servicios WEB
Servicios WEBServicios WEB
Servicios WEB
 

Destacado

Arquitectura de las nuevas aplicaciones web: Como lograr escalabilidad, alta ...
Arquitectura de las nuevas aplicaciones web: Como lograr escalabilidad, alta ...Arquitectura de las nuevas aplicaciones web: Como lograr escalabilidad, alta ...
Arquitectura de las nuevas aplicaciones web: Como lograr escalabilidad, alta ...Miguel Gallardo
 
Sitios web de alto rendimiento y alta disponibilidad
Sitios web de alto rendimiento y alta disponibilidadSitios web de alto rendimiento y alta disponibilidad
Sitios web de alto rendimiento y alta disponibilidadIván Campaña Naranjo
 
144 Rest Web Services
144 Rest Web Services144 Rest Web Services
144 Rest Web ServicesGeneXus
 
JhonAvila_Norma568_569
JhonAvila_Norma568_569JhonAvila_Norma568_569
JhonAvila_Norma568_569UPTC
 
Web services GeneXus Tilo
Web services GeneXus TiloWeb services GeneXus Tilo
Web services GeneXus TiloGeneXus
 
Ebe2013: productividad conherramientas en la nube
Ebe2013: productividad conherramientas en la nubeEbe2013: productividad conherramientas en la nube
Ebe2013: productividad conherramientas en la nubeJuan Carlos Rubio Pineda
 
Clase 2 concepto basicos cmi curso control gestion y cmi mineduc
Clase 2 concepto basicos cmi curso control gestion y cmi mineducClase 2 concepto basicos cmi curso control gestion y cmi mineduc
Clase 2 concepto basicos cmi curso control gestion y cmi mineducCarlos Echeverria Muñoz
 
Uagrmbs pinnel liderazgo 2
Uagrmbs pinnel  liderazgo 2Uagrmbs pinnel  liderazgo 2
Uagrmbs pinnel liderazgo 2Patricia Pinnel
 
Reflexiones y anécdotas de consultoria para ejecutivos.
Reflexiones y anécdotas de consultoria para ejecutivos.Reflexiones y anécdotas de consultoria para ejecutivos.
Reflexiones y anécdotas de consultoria para ejecutivos.Monroy Asesores, S.C.
 
7/9 Curso JEE5, Soa, Web Services, ESB y XML
7/9 Curso JEE5, Soa, Web Services, ESB y XML7/9 Curso JEE5, Soa, Web Services, ESB y XML
7/9 Curso JEE5, Soa, Web Services, ESB y XMLJuan Carlos Rubio Pineda
 
Evolución de las redes
Evolución de las redesEvolución de las redes
Evolución de las redesDaisy Ruiz
 
Ud0 introduccion
Ud0 introduccionUd0 introduccion
Ud0 introduccionedutic_es
 
Folheto dolby cp650
Folheto dolby cp650Folheto dolby cp650
Folheto dolby cp650StrongCinema
 

Destacado (20)

Arquitectura de las nuevas aplicaciones web: Como lograr escalabilidad, alta ...
Arquitectura de las nuevas aplicaciones web: Como lograr escalabilidad, alta ...Arquitectura de las nuevas aplicaciones web: Como lograr escalabilidad, alta ...
Arquitectura de las nuevas aplicaciones web: Como lograr escalabilidad, alta ...
 
Sitios web de alto rendimiento y alta disponibilidad
Sitios web de alto rendimiento y alta disponibilidadSitios web de alto rendimiento y alta disponibilidad
Sitios web de alto rendimiento y alta disponibilidad
 
144 Rest Web Services
144 Rest Web Services144 Rest Web Services
144 Rest Web Services
 
Base de datos
Base de datosBase de datos
Base de datos
 
JhonAvila_Norma568_569
JhonAvila_Norma568_569JhonAvila_Norma568_569
JhonAvila_Norma568_569
 
Web services GeneXus Tilo
Web services GeneXus TiloWeb services GeneXus Tilo
Web services GeneXus Tilo
 
Norma tia_eia 568_certificacion
Norma tia_eia 568_certificacionNorma tia_eia 568_certificacion
Norma tia_eia 568_certificacion
 
Control de Gestión
Control de GestiónControl de Gestión
Control de Gestión
 
Introduccion Servicios Web
Introduccion Servicios WebIntroduccion Servicios Web
Introduccion Servicios Web
 
Ebe2013: productividad conherramientas en la nube
Ebe2013: productividad conherramientas en la nubeEbe2013: productividad conherramientas en la nube
Ebe2013: productividad conherramientas en la nube
 
Clase 2 concepto basicos cmi curso control gestion y cmi mineduc
Clase 2 concepto basicos cmi curso control gestion y cmi mineducClase 2 concepto basicos cmi curso control gestion y cmi mineduc
Clase 2 concepto basicos cmi curso control gestion y cmi mineduc
 
Servicios web xml
Servicios web xmlServicios web xml
Servicios web xml
 
Uagrmbs pinnel liderazgo 2
Uagrmbs pinnel  liderazgo 2Uagrmbs pinnel  liderazgo 2
Uagrmbs pinnel liderazgo 2
 
Reflexiones y anécdotas de consultoria para ejecutivos.
Reflexiones y anécdotas de consultoria para ejecutivos.Reflexiones y anécdotas de consultoria para ejecutivos.
Reflexiones y anécdotas de consultoria para ejecutivos.
 
SOA y Web Services
SOA y Web ServicesSOA y Web Services
SOA y Web Services
 
El Proyecto Polymer
El Proyecto PolymerEl Proyecto Polymer
El Proyecto Polymer
 
7/9 Curso JEE5, Soa, Web Services, ESB y XML
7/9 Curso JEE5, Soa, Web Services, ESB y XML7/9 Curso JEE5, Soa, Web Services, ESB y XML
7/9 Curso JEE5, Soa, Web Services, ESB y XML
 
Evolución de las redes
Evolución de las redesEvolución de las redes
Evolución de las redes
 
Ud0 introduccion
Ud0 introduccionUd0 introduccion
Ud0 introduccion
 
Folheto dolby cp650
Folheto dolby cp650Folheto dolby cp650
Folheto dolby cp650
 

Similar a Charla Web Services

Web services en sistemas distribuidos
Web services en sistemas distribuidosWeb services en sistemas distribuidos
Web services en sistemas distribuidosTensor
 
Windows communication foundation (wcf)
Windows communication foundation (wcf)Windows communication foundation (wcf)
Windows communication foundation (wcf)Vivi Marquez
 
Arquitectura tres capas
Arquitectura tres capasArquitectura tres capas
Arquitectura tres capasJenny Gonzalez
 
6-Unidad 2: Diseño de Vista-2.3 Introducción Web Services-Introducción
6-Unidad 2: Diseño de Vista-2.3 Introducción Web Services-Introducción6-Unidad 2: Diseño de Vista-2.3 Introducción Web Services-Introducción
6-Unidad 2: Diseño de Vista-2.3 Introducción Web Services-IntroducciónLuis Fernando Aguas Bucheli
 
Ruby y las arquitecturas orientadas a servicios
Ruby y las arquitecturas orientadas a servicios Ruby y las arquitecturas orientadas a servicios
Ruby y las arquitecturas orientadas a servicios Joaquín Salvachúa
 
Introduction to wcf solutions
Introduction to wcf solutionsIntroduction to wcf solutions
Introduction to wcf solutionsMICTT Palma
 
Desarrollo de la web (laura ballesteros & gicela mendoza) 11.3
Desarrollo de la web (laura ballesteros & gicela mendoza) 11.3Desarrollo de la web (laura ballesteros & gicela mendoza) 11.3
Desarrollo de la web (laura ballesteros & gicela mendoza) 11.3ballesterosymendoza
 
Arquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptx
Arquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptxArquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptx
Arquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptxXavierNavia
 
Servicios Web
Servicios WebServicios Web
Servicios Webdwebslide
 

Similar a Charla Web Services (20)

Web services en sistemas distribuidos
Web services en sistemas distribuidosWeb services en sistemas distribuidos
Web services en sistemas distribuidos
 
Semana 15 -servicios_web
Semana 15 -servicios_webSemana 15 -servicios_web
Semana 15 -servicios_web
 
Servicios web
Servicios webServicios web
Servicios web
 
Windows communication foundation (wcf)
Windows communication foundation (wcf)Windows communication foundation (wcf)
Windows communication foundation (wcf)
 
Arquitectura tres capas
Arquitectura tres capasArquitectura tres capas
Arquitectura tres capas
 
S3-PD2-2.1. SOAP
S3-PD2-2.1. SOAPS3-PD2-2.1. SOAP
S3-PD2-2.1. SOAP
 
6-Unidad 2: Diseño de Vista-2.3 Introducción Web Services-Introducción
6-Unidad 2: Diseño de Vista-2.3 Introducción Web Services-Introducción6-Unidad 2: Diseño de Vista-2.3 Introducción Web Services-Introducción
6-Unidad 2: Diseño de Vista-2.3 Introducción Web Services-Introducción
 
02 - Servicios SOAP.pptx
02 - Servicios SOAP.pptx02 - Servicios SOAP.pptx
02 - Servicios SOAP.pptx
 
Ruby y las arquitecturas orientadas a servicios
Ruby y las arquitecturas orientadas a servicios Ruby y las arquitecturas orientadas a servicios
Ruby y las arquitecturas orientadas a servicios
 
Introduction to wcf solutions
Introduction to wcf solutionsIntroduction to wcf solutions
Introduction to wcf solutions
 
Web Services
Web ServicesWeb Services
Web Services
 
Desarrollo de la web (laura ballesteros & gicela mendoza) 11.3
Desarrollo de la web (laura ballesteros & gicela mendoza) 11.3Desarrollo de la web (laura ballesteros & gicela mendoza) 11.3
Desarrollo de la web (laura ballesteros & gicela mendoza) 11.3
 
Arquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptx
Arquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptxArquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptx
Arquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptx
 
Web services
Web servicesWeb services
Web services
 
Capa de transporte
Capa de transporteCapa de transporte
Capa de transporte
 
Servicios Web
Servicios WebServicios Web
Servicios Web
 
S3-PD2.pptx
S3-PD2.pptxS3-PD2.pptx
S3-PD2.pptx
 
S3-PD2.pptx
S3-PD2.pptxS3-PD2.pptx
S3-PD2.pptx
 
Capa de Aplicación
Capa de Aplicación Capa de Aplicación
Capa de Aplicación
 
Servicios web xml
Servicios web xmlServicios web xml
Servicios web xml
 

Último

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 

Último (13)

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 

Charla Web Services

  • 1. Arquitectura de Servicios Web José Miguel Selman G. j [email_address] Conceptos, Aplicaciones, Buenas Prácticas, Actualidad y Tendencias
  • 2.
  • 3.
  • 4.
  • 5.
  • 6. Pero ha evolucionado… Web Web 2.0 ¿Web 3.0? ?
  • 7.
  • 8. Evolución computación distribuída (Hacia Servicios Web) * Fuente: “J2EE Web Services on BEA Weblogic”, Anjali Anagol-Subbarao E-Mail EDI RPCs Corba COM XML SOAP WSDL WS-Stack RMI 1997 1990 1970 2000 1980 (*)
  • 9.
  • 10.
  • 11.
  • 12. Quienes aparecen siempre… Y muchos otros…
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19. Ciclo de Vida Servicios Registro o Directorio Proveedor del Servicio Consumidor del Servicio 1. Desarrollo servicio e interfaz 5. Desarrollo aplicación cliente 2. Publica servicio en el directorio 3. Busca proveedor de servicio. 4. Listado de proveedores de servicio y descripciones. 6. Requiere Servicio 7. Provee Servicio
  • 21.
  • 22. Arquitectura Conceptual Comunicaciones HTTP, SMTP, FTP, JMS, IIOP, … Mensajes Extensiones SOAP Entrega Confiable, Correlación, Transacciones… SOAP Descripciones WSDL Procesos Descubrimiento, Agregación, Coreografía, … XML, DTD, XML Schema S E G U R I D A D A D M I N I S T R A C I Ó N
  • 23.
  • 24.
  • 25.
  • 26. WSDL types message portTypes bindings port service Definiciones Abstractas Definiciones Concretas Documento WSDL Declaraciones de Tipos de datos (“dataTypes”) Definición de los mensajes en términos de los “dataTypes” Definición de las operaciones soportadas y los mensajes que forman parte de las mismas Protocolo usado para implementar un “portType” y el formato de los mensajes Asocia una dirección concreta con un “binding” Define los “ports” que proveen el servicio
  • 27. WSDL Service Port (e.g. http://host/svc) Binding (e.g. SOAP) Interfaz Abstracta portType operation(s) inMesage outMessage Port Binding
  • 28.
  • 29.
  • 30.
  • 31.
  • 33.
  • 34.
  • 35. SOAP
  • 36. SOAP
  • 37.
  • 38.
  • 39.
  • 41.
  • 42.
  • 43.
  • 45.
  • 46.
  • 47. ¿De qué debemos proteger nuestras aplicaciones? Violación de Confidencialidad Violación de Integridad Ataque de Repetición
  • 48. Ataques Aplicaciones Ataque del Intermediario (conocido como “Man in the Middle”)
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54. Interrelación Tecnologías/Especificaciones de Seguridad Servicios Web … TCP/IP Capa de Transporte (HTTP, FTP, SMTP, MQ, etc.) Seguridad Capa de Transporte (TLS/SSL) XML Signature XML Encryption SOAP WS Security SAML XKMS Otras Alto Nivel Infraestructura de Red Frameworks XML Fuente: “Securing Web Services With WS-Security. Demystifying WS-Security, WS-Policy, SAML, XML Signature, and XML Encryption”, Jothy Rosenberg and David Remy
  • 55.
  • 56.
  • 57. Ejemplo Sobre SOAP WS-Security <S:Envelope> <S:Header> <wsse:Security> <wsse:UsernameToken> … </wsse:UsernameToken> <ds:Signature> … </ds:Signature> … <xenc:ReferenceList> … <xenc:DataReference URI=”#body”/> … </xenc:ReferenceList> </wsse:Security> </S:Header> <S:Body> <xenc:EncryptedData Id=”body” Type=”content”> … </xenc:EncryptedData> </S:Body> </S:Envelope>
  • 58. Algunos ejemplos <wsse:Security> <wsse:UsernameToken> <wsse:Username>jselman</wsse:Username> <wsse:Password>1234</wsse:Password> </wsse:UsernameToken> </wsse:Security> <wsse:Security> <wsse:UsernameToken> <wsse:Username>jselman</wsse:Username> <wsse:PasswordType=”wsse:PasswordDigest”> D2A12DFE8D90FC6… </wsse:PasswordType> <wsse:Nonce>EFD89F06CCB28C89</wsse:Nonce> <wsu:Created>2005-05-08T20:21:23Z</wsu:Created> </wsse:UsernameToken> </wsse:Security>
  • 59. Opciones de Seguridad Capa de Transporte Servicio de Seguridad Tecnologías Integridad SSL/TLS Confidencialidad SSL/TLS Autenticación Proveedor (Servidor) SSL/TLS Autenticación Consumidor (Cliente) SSL/TLS con autenticación de cliente HTTP Basic HTTP Digest HTTP Attributes SSL/TLS HTTP Basic HTTP Digest
  • 60. Opciones de Seguridad Capa de Mensajería Servicio de Seguridad Tecnologías Integridad XML Signature S/MIME PKCS#7 Confidencialidad XML Encryption Autenticación del Emisor SOAP (Cliente) XML Encryption username & [password|digest] username & [password|digest] Certificado X.509 Token de Seguridad Kerberos SAML REL Etc.
  • 61. Comparación Seguridad Según Capa Seguridad de Transporte Seguridad de Mensajería Punto a Punto Destino a Destino Madura, su implementación es relativamente directa Nueva, relativamente compleja con muchas opciones de seguridad No granular, enfoque del todo o nada Muy granular, puede aplicar selectivamente a trozos de mensajes y solamente a los requerimientos o respuestas Dependiente del Transporte La misma estrategia puede aplicarse a distintas tecnologías de transporte
  • 62.
  • 64.
  • 65. Historia de los estándares de Procesos de Negocio 2000/05 XLang (Microsoft) 2001/03 BPML (Intallio) 2001/05 WSFL (IBM) 2001/06 BPSS (ebXML) 2002/03 BPEL4WS 1.0 (IBM, Microsoft) BPEL4WS 1.1 (OASIS) 2002/06 2003/01 WS-Choreography (W3C) 2003/04 WSCI (Sun et al) WSCL (HP) 2002/08
  • 66. Servicios Web como procesos de negocio Servicio Web 1 Servicio Web 2 Servicio Web 3 Servicio Web 4 Servicio Web 5 Servicio Web n
  • 67. Problema Tipo Cliente Servicio de Compra Servicio Crédito Servicio de Inventario Consolidación de Resultados Orden de Compra Check Crédito Reservar Inventario Respuesta Crédito Respuesta Inventario Factura
  • 68.
  • 69.
  • 70. Ejemplo: Orden de compra Orden de Compra Requerimiento de Orden de Compra Ack de recepción Respuesta a la orden de compra Negocio “A” Negocio “ B”
  • 71. Visto como Coreografía OC Request OC Acknowledgement OC Response Coreografía – Las públicas y visibles interacciones de intercambio de mensajes Proceso Público Negocio A Negocio B Envío OC Recepción OC Ack Recepción respuesta OC Recepción OC Envío OC Ack Envío respuesta OC
  • 72. Visto como Orquestación Envío OC Recepción OC Ack Recepción respuesta OC Transformación Transformación Desde ERP Hacia ERP OC Request OC Acknowledgement OC Response Orquestación – Es un proceso de negocio privado ejecutable Proceso Privado Business BPEL Workflow
  • 73. Orquestación y Coreografía juntos Envío OC Recepción OC Ack Recepción respuesta OC Transform Transform Negocio A BPEL Workflow OC Request OC Acknowledgement OC Response Generación Plantilla BPEL Generación Plantilla BPEL Recepción OC Envío OC Ack envíoRecepción Respuesta OC Transform Transform Negocio B BPEL Workflow Dos Workflow BPEL que muestran acuerdo entre negocios Negocio B Business Analyst Tool Negocio A
  • 74.
  • 75.
  • 76. Estándares que construyen BPEL Description HTTP,IIOP, JMS, SMTP Transport XML Message SOAP WSDL UDDI Discovery Transactions Coordination WS-Security WS-Reliability Quality of Service Business Processes Context Description Management Orchestration - BPEL4WS Choreography - CDL4WS
  • 77.
  • 78.
  • 79.
  • 81.
  • 82.  
  • 83.
  • 84.
  • 85. WS-I Web Services Interoperability http://www.ws-i.org/
  • 86.
  • 87. WS-I, Standards, and Industry WS-I Web Services Interoperability
  • 88.
  • 89.
  • 90.
  • 91.
  • 92.
  • 93.
  • 94.
  • 95. WS-I’s Work to Date Composition/Orchestration Business Process Orchestration Portals Management XML, SOAP XML Schema, WSDL, UDDI, SOAP with Attachments HTTP, HTTPS, Others Invocation Description Transports Composable Service Elements Transactionality WS-Security Reliable Messaging Endpoint Identification, Publish/Subscribe Messaging Additional Capabilities WS-I Web Service Interoperability
  • 96.
  • 97.
  • 98.
  • 99. Manos a la obra …
  • 100.
  • 101.
  • 106.
  • 107.
  • 108.
  • 109.
  • 110.
  • 111.
  • 112.
  • 113.
  • 115.
  • 116.
  • 117.
  • 118.
  • 119. OWL-S: Relación WSDL Más información: http://www.w3.org/Submission/2004/SUBM-OWL-S-20041122/
  • 120.
  • 121. Introducción a Grid Services
  • 122.
  • 123.
  • 124.
  • 125.
  • 126.
  • 127. Infraestructura Grid: Vista Conceptual Más Información: http://www.globus.org/ogsa/
  • 128. Portales y WSRP http://www.ibm.com/developerworks/webservices/library/ws-wsrp/
  • 129.
  • 130. WSRP: Productores y Consumidores
  • 132. Rich Internet Applications: Ajax, REST y más …
  • 133.
  • 135. Modelo Síncrono Actividad de Usuario Actividad de Usuario Actividad de Usuario Procesamiento en Servidor Procesamiento en Servidor
  • 136. Modelo Asíncrono Browser Motor AJAX Input Usuario 1 Input Usuario 2 Render Respuesta 1 Render Respuesta 2 Procesamiento en Servidor Procesamiento en Servidor
  • 137.
  • 138.
  • 139.
  • 140. Otras Plataformas RIA www.javafx.com silverlight.net www.adobe.com/es/products/flex/ www.adobe.com/es/products/air/ Y muchas más…
  • 142.
  • 143.
  • 144. Tipos de Firmas XML Signature <Signature> <Reference> <ElementoFirmado> Enveloping <ElementoEnvolvente> <Signature> <Reference> Enveloped <DocumentoXML> <Signature> <Reference> Detached <ElementoDestino>
  • 145.
  • 146. Estructura XML Signature <Signature ID?> <SignedInfo> <CanonicalizationMethod/> <SignatureMethod/> (<Reference> (<Transforms>)? <DigestMethod> <DigestValue> </Reference>)+ </SignedInfo> <SignatureValue> (<KeyInfo>)? (<Object ID?>)* </Signature>
  • 147. XML Signature: Enveloped <OrdenDeCompra id=” ODC200504251002 ”> <SKU>12345678</SKU> <Cantidad>17</Cantidad> <Signature xmlns=”http://www.w3.org/2000/09/xmldsig#”> <SignedInfo> <Reference URI=” #ODC200504251002 ”/> </SignedInfo> <SignatureValue>…</SignatureValue> <KeyInfo>…</KeyInfo> </Signature> </OrdenDeCompra>
  • 148. XML Signature: Enveloping <Signature xmlns=”http://www.w3.org/2000/09/xmldsig#”> <SignedInfo> <Reference URI=” #10022334 ”/> </SignedInfo> <SignatureValue>…</SignatureValue> <KeyInfo>…</KeyInfo> <Object> <SignedItem id=” 10022334 ”>Información a ser Firmada</SignedItem> </Object> </Signature>
  • 149. XML Signature: Detached <Signature xmlns=”http://www.w3.org/2000/09/xmldsig#”> <SignedInfo> <Reference URI=” http://www.jselman.com/imagen.jpg ”/> </SignedInfo> <SignatureValue>…</SignatureValue> <KeyInfo>…</KeyInfo> </Signature>
  • 150.
  • 152.
  • 153. Estructura XML Encryption <EncryptedData Id? Type? MimeType? Encoding?> <EncryptionMethod/>? <ds:KeyInfo> <EncryptedKey>? <AgreementMethod>? <ds:KeyName>? <ds:RetrievalMethod>? <ds:*>? </ds:KeyInfo> <CipherData> <CipherValue>? <CipherReference URI?>? </CipherData> <EncryptionProperties>? </EncryptedData>
  • 154. Ejemplo XML Encryption <purchaseOrder> <Order> <Item>book</Item> <Id>123-958-74598</Id> <Quantity>12</Quantity> </Order> <Payment> <CardId> 123654-8988889-9996874 </CardId> <CardName>visa</CardName> <ValidDate>12-10-2004</ValidDate> </Payment> </purchaseOrder> <PurchaseOrder> <Order> <Item>book</Item> <Id>123-958-74598</Id> <Quantity>12</Quantity> </Order> <EncryptedData Type='http://www.w3.org/2001/04/xmlenc#Element‘ xmlns='http://www.w3.org/2001/04/xmlenc#'> <CipherData> <CipherValue>A23B45C564587</CipherValue> </CipherData> </EncryptedData> </PurchaseOrder>
  • 155.
  • 156.
  • 157.
  • 158. Ejemplo Aserción de Autenticación <saml:Assertion MajorVersion=”1” MinorVersion=”0” AssertionID=”10.254.1.101.12345” Issuer=”jselman.com” IssueInstant=”2005-05-07T22:02:00Z”> <saml:Conditions NotBefore=”2005-05-07T22:02:00Z” NotAfter=”2005-05-07T22:09:00Z” /> <saml: AuthenticationStatement AuthenticationMethod =”password” AuthenticationInstant =”2005-05-07T22:02:00Z”> <saml:Subject> <saml: NameIdentifier SecurityDomain=” jselman.com ” Name=” José Miguel ” /> </saml:Subject> </saml:AuthenticationStatement> </saml:Assertion>
  • 159. Arquitectura SAML SAML Aserción de Autenticación Aserción de Atributos Aserción de Autorización Autoridad de Autenticación Autoridad de Atributos Punto de Decisión de Políticas (PDP) Recolector de Credenciales Entidad de Sistema Punto de Hacer Valer Políticas (PEP) Requerimiento Aplicación Política Política Política
  • 160. Ejemplo XML Encryption <Alumno> <Nombre>José Miguel Selman</Nombre> <AñoIngreso>1999</AñoIngreso> <Matricula> <EncryptedData id=” matricula ” Type=”http://www.w3.org/2000/09/xmldsig#content”> <EncryptionMethod Algorithm=”…”/> <CipherData><CipherValue>…</CipherValue></CipherData> </EncryptedData> </Matricula> <NotaExamen> <EncryptedData id=” notaexamen ” Type=”http://www.w3.org/2000/09/xmldsig#content”> <EncryptionMethod Algorithm=”…”/> <CipherData><CipherValue>…</CipherValue></CipherData> </EncryptedData> </NotaExamen> <EncryptedKey> <EncryptionMethod Algorithm=”…”/> <CipherData> <CipherValue>…</CipherValue> </CipherData> <ReferenceList> <DataReference URI=” #matricula ”/> <DataReference URI=” #notaexamen ”/> </ReferenceList> </EncryptedKey> </Alumno>
  • 161. Token SAML <S:Envelope xmlns:S=&quot;...&quot;> <S:Header> <wsse:Security xmlns:wsse=&quot;...&quot;> <saml:Assertion MajorVersion=&quot;1&quot; MinorVersion=&quot;0&quot; AssertionID=&quot;SecurityToken-ef912422&quot; Issuer=&quot;jselman&quot; IssueInstant=&quot;2005-05-14T16:47:05.6228146-07:00&quot; xmlns:saml=&quot;urn:oasis:names:tc:SAML:1.0:assertion&quot;> ... </saml:Assertion> ... </wsse:Security> </S:Header> <S:Body> ... </S:Body> </S:Envelope>
  • 162. Username Token <wsse:Security> <wsse:UsernameToken> <wsse:Username>jselman</wsse:Username> <wsse:PasswordType=”wsse:PasswordDigest”> D2A12DFE8D90FC6… </wsse:PasswordType> <wsse:Nonce>EFD89F06CCB28C89</wsse:Nonce> <wsu:Created>2005-05-08T20:21:23Z</wsu:Created> </wsse:UsernameToken> </wsse:Security>
  • 163. Token eXtensible Rights Markup Language <S:Envelope> <S:Header> <wsse:Security> <r:license licenseId=”urn:foo:SecurityToken:ab12345”> <r:grant> <r:keyHolder> <r:info> <ds:KeyValue>…</ds:KeyValue> </r:info> </r:keyHolder> <r:possessProperty/> <sx:commonName>José Miguel Selman</sx:commonName> </r:grant> <r:issuer> <ds:Signature>…</ds:Signature> </r:issuer> </r:license> <ds:Signature> <ds:SignedInfo> … <ds:Reference URI=”#msgBody”> … </ds:Reference> … </ds:SignedInfo> … <ds:KeyInfo> <wsse:SecurityTokenReference> <wsse:Reference URI=”urn:foo:SecurityToken:ab12345” ValueType=”r:license”/> </wsse:SecurityTokenReference> </ds:KeyInfo> </ds:Signature> </wsse:Security> </S:Header> <S:Body wsu:Id=”msgBody”> <PictureRequest xmlns=”http://www.jselman.com/pics”> <Picture format=”image/gif”> AxE1TrsRGGH… </Picture> </PictureRequest> </S:Body> </S:Envelope>
  • 164. Token Certificado X509 <wsse:BinarySecurityToken ValueType=”wsse:X509v3” EncodingType=”wsse:Base64Binary”> NIFEPzCCA9CrAwIBAgIQEmtJZc0… </wsse:BinarySecurityToken>
  • 165. Token XCBF <S:Envelope xmlns:S=&quot;...&quot;> <S:Header> <wsse:Security xmlns:wsse=&quot;...&quot;> <wsse:XCBFSecurityToken xmlns:wsse=&quot;http://schemas.xmlsoap.org/ws/2002/04/secext&quot; Id=&quot;XCBF-biometric-object&quot; ValueType=&quot;wsse:XCBFv1&quot; EncodingType=&quot;wsee:XER&quot;> <BiometricSyntaxSets> <BiometricSyntax> <biometricObjects> <BiometricObject> <biometricHeader> <version> 0 </version> <recordType> <id> 4 </id> </recordType> <dataType> <processed/> </dataType> <purpose> <audit/> </purpose> <quality> -1 </quality> <validityPeriod> <notBefore> 1980.10.4 </notBefore> <notAfter>2003.10.3.23.59.59</notAfter> </validityPeriod> <format> <formatOwner> <oid> 2.23.42.9.10.4.2 </oid> </formatOwner> </format> </biometricHeader> <biometricData> 0A0B0C0D0E0F1A1B1C1D1E1F2A2B2C2D2E2F </biometricData> </BiometricObject> </biometricObjects> </BiometricSyntax> </BiometricSyntaxSets> </wsse:XCBFSecurityToken> </wsse:Security> </S:Header> <S:Body> ... </S:Body> </S:Envelope>
  • 166. WS-Security Timestamps <S:Envelope> <S:Header> <wsse:Security> … <wsu:Timestamp> <wsu:Created>2005-05-14T19:31:22Z</wsu:Created> <wsu:Expires>2005-05-14 T19:46:22Z</wsu:Expires> </wsu:Timestamp> … </wsse:Security> </S:Header> </S:Envelope>
  • 167.
  • 169. Framework de Seguridad Web Services Especificaciones Base Web Services WS Security WS-Policy WS-Trust WS-Privacy WS-SecureConversation WS-Federation WS-Authorization HOY