Your SlideShare is downloading. ×
Servicios Web
Servicios Web
Servicios Web
Servicios Web
Servicios Web
Servicios Web
Servicios Web
Servicios Web
Servicios Web
Servicios Web
Servicios Web
Servicios Web
Servicios Web
Servicios Web
Servicios Web
Servicios Web
Servicios Web
Servicios Web
Servicios Web
Servicios Web
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Servicios Web

1,337

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,337
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
21
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. INTEGRANTES: - JORGE ENRIQUE GARCIA ARAGON - ANTONIO PONCIANO HERNANDEZ -TONATIU PADILLA GUTIERREZ PROGRAMACION WEBCATEDRATICO: Francisco Vázquez Guzmán Tehuacán, Puebla Diciembre 2011
  • 2. SERVICIOS WEBUn servicio web (en inglés, Web service) es una pieza de software que utiliza unconjunto de protocolos y estándares que sirven para intercambiar datos entreaplicaciones. Distintas aplicaciones de software desarrolladas en lenguajes deprogramación diferentes, y ejecutadas sobre cualquier plataforma, pueden utilizarlos servicios web para intercambiar datos en redes de ordenadores como Internet.La interoperabilidad se consigue mediante la adopción de estándares abiertos. Lasorganizaciones OASIS y W3C son los comités responsables de la arquitectura yreglamentación de los servicios Web. Para mejorar la interoperabilidad entredistintas implementaciones de servicios Web se ha creado el organismo WS-I,encargado de desarrollar diversos perfiles para definir de manera más exhaustivaestos estándaresLa principal razón para usar servicios Web es que se pueden utilizarcon HTTP sobre TCP (Transmisión Control Protocolo) en el puerto 80. Dado quelas organizaciones protegen sus redes mediante firewalls -que filtran y bloqueangran parte del tráfico de Internet-, cierran casi todos los puertos TCP salvo el 80,que es, precisamente, el que usan los navegadores. Los servicios Web utilizaneste puerto, por la simple razón de que no resultan bloqueados. Es importanteseñalar que los servicios web se pueden utilizar sobre cualquier protocolo, sinembargo, TCP es el más común.Otra razón es que, antes de que existiera SOAP, no había buenas interfaces paraacceder a las funcionalidades de otros ordenadores en red. Las que había eran adhoc y poco conocidas, tales como EDI (Electronic DataInterchange), RPC (Remote Procedure Call), u otras APIs.Una tercera razón por la que los servicios Web son muy prácticos es que puedenaportar gran independencia entre la aplicación que usa el servicio Web y el propioservicio. De esta forma, los cambios a lo largo del tiempo en uno no deben afectaral otro. Esta flexibilidad será cada vez más importante, dado que la tendencia aconstruir grandes aplicaciones a partir de componentes distribuidos más pequeñoses cada día más utilizada.Se espera que para los próximos años mejoren la calidad y cantidad de serviciosofrecidos basados en los nuevos estándares.En resumen, nos sirve para poder utilizar datos desde otras plataformas. Porejemplo, supongamos que tenemos una aplicación bajo Windows con la quegestionamos una tienda de camisetas y en un momento dado decidimos montaruna tienda online o que nuestra PDA acceda al catálogo para poder enseñar a losclientes en tiempo real las tarifas. Una buena solución para compartir los datos esmontar un servicio web.
  • 3. Otra utilidad sería la de enviar mensajes SMS, por ejemplo. Supongamos unaPlataforma bajo Windows que mediante un módem GSM realiza envío de SMS amóviles y deseamos que nuestros colaboradores a través de sus páginas webpuedan mandar también. Pues habilitamos un servicio web a través del cualnuestra base de datos reciba los datos necesarios para mandar los mensajes. Deesta forma, las webs no tendrán acceso directo a nuestro aplicativo pero se lescede un pequeño protocolo para poder mandar los SMS.A nivel de programación no es difícil de implementar y el tiempo que nos lleva esrelativamente reducido, en comparación con todo lo que habría que montar paraexportar los datos en un XML, subirlos a un FTP y recogerlos con un cron.ESTANDARES EMPLEADOS Web Services Protocol Stack: Así se denomina al conjunto de servicios y protocolos de los servicios Web. XML (Extensible Markup Language): Es el formato estándar para los datos que se vayan a intercambiar. SOAP (Simple Object Access Protocol) o XML-RPC (XML Remote Procedure Call): Protocolos sobre los que se establece el intercambio. Otros protocolos: los datos en XML también pueden enviarse de una aplicación a otra mediante protocolos normales como HTTP (Hypertext Transfer Protocol), FTP (File Transfer Protocol), o SMTP(Simple Mail Transfer Protocol). WSDL (Web Services Description Language): Es el lenguaje de la interfaz pública para los servicios Web. Es una descripción basada en XML de los requisitos funcionales necesarios para establecer una comunicación con los servicios Web. UDDI (Universal Description, Discovery and Integration): Protocolo para publicar la información de los servicios Web. Permite comprobar qué servicios web están disponibles. WS-Security (Web Service Security): Protocolo de seguridad aceptado como estándar por OASIS (Organization for the Advancement of Structured Information Standards). Garantiza la autenticación de los actores y la confidencialidad de los mensajes enviados.VENTAJAS Aportan interoperabilidad entre aplicaciones de software independientemente de sus propiedades o de las plataformas sobre las que se instalen. Los servicios Web fomentan los estándares y protocolos basados en texto, que hacen más fácil acceder a su contenido y entender su funcionamiento. Permiten que servicios y software de diferentes compañías ubicadas en diferentes lugares geográficos puedan ser combinados fácilmente para proveer servicios integrados.
  • 4. CREACION Y CONSUMOVamos a usar el Visual Studio .NET para crear un cliente de Windows para usarun servicio Web publicado en el localhost.El servicio Web que vamos a usar será el conversor de grados Centígrados(Celsius) a Fahrenheit y lo usaremos desde localhost (el servidor de Internet local)o bien desde la siguiente dirección Web:http://www.elguille.info/Net/WebServices/CelsiusFahrenheit.asmx (para que compruebes que funciona en casos reales y no solamente conejemplos de prueba)Para crear el cliente de Windows, necesitaremos iniciar Visual Studio .NET y crearuna nueva aplicación de Windows, el lenguaje que vamos a usar es C#, Elaspecto del formulario de prueba tendrá el siguiente aspecto: Figura 1, El formulario en tiempo de diseñoLos nombres de los controles serán los que asigna automáticamente el Visual Studio.NET y son los relacionados a continuación: Nombre del Control Texto mostrado label1 º Centígrados textBox1 textBox1 button1 aºF label2 º Fahrenheit
  • 5. textBox2 textBox2 button2 aºC label3 label3Ahora vamos a localizar el servicio Web que queremos usar con nuestra aplicación deescritorio.Para localizar un servicio Web podemos hacerlo de dos formas, usando los directoriosUDDI o bien escribiendo la dirección en la que está localizado ese servicio Web,usaremos esta segunda forma de localizar el servicio Web.Nota:En los siguientes pasos se va a indicar una dirección de localhost, pero tambiénpodemos especificar la dirección del servicio Web indicada al principio de estedocumento.En los casos en que sea diferente lo que tengamos que escribir dependiendo de que elservicio Web esté en localhost o en una dirección real de Internet, se indicará en notascomo esta.Cuando estamos trabajando con Visual Studio .NET o cualquier otro entorno dedesarrollo, cuando queremos usar las clases que están contenidas en una librería (DLL)tenemos que localizar dicha librería dinámica y crear una referencia, de forma que elentorno de desarrollo sepa qué clases contiene dicha librería para que podamos usarlaen nuestro proyecto.Cuando queramos usar un servicio Web también tenemos que crear una referencia(llamada referencia Web), al crear esta referencia el Visual Studio .NET sabrá cómolocalizar dicho servicio Web además de que sabrá que interfaces se exportan en esaclase, es decir sabrá todo lo que tiene que saber sobre la clase contenida en el servicioWeb.Ahora veamos los pasos que seguiremos para añadir una referencia Web:1- En el Explorador de soluciones, pulsa con el botón secundario del ratón sobre elelemento indicado con References, del menú mostrado selecciona la opción Agregarreferencia Web...(ver la figura 2)
  • 6. Figura 2, Agregar referencia Web2- Se mostrará una ventana desde la cual podemos acceder a los directorios UDDI obien podríamos escribir la dirección en la que se encuentra el servicio Web, en la figura3 se muestra el diálogo antes de escribir ninguna dirección ni seleccionar losdirectorios UDDI:
  • 7. Figura 3, Agregar referencia WebComo vemos, podemos consultar los directorios UDDI o bien podemos escribir ladirección en la que se encuentra el servicio Web.3- En este caso vamos a escribir la dirección del servicio Web que se encuentra en ellocalhost, para ello habrá que escribir en la barra de direcciones:http://localhost/celsiusfahrenheit.asmx (si queremos probar el servicio Web en nuestropropio equipo) o bien la dirección de ese servicio Web que está en misitio: http://www.elguille.info/Net/WebServices/CelsiusFahrenheit.asmx, en amboscasos el código incluido en los servicios Web es el mismo, pero para poder usar elsegundo tendremos que tener conexión a Internet.4- Cuando escribimos esa dirección en el cuadro de Agregar referencia Web, semostrará la descripción del servicio Web, así como la de cada una de las funciones quecontiene, tal como podemos comprobar en la figura 4:
  • 8. Figura 4, Información sobre el servicio Web antes de agregar la referencia WebNota:La información mostrada es la misma que mostraría si se indicara en la barra dedirecciones del Internet Explorer.4- Una vez que tenemos creada la referencia al servicio Web podemos acceder a laclase incluida en el servicio. Para poder acceder directamente a la clase sin tener queindicar el espacio de nombres en el que está incluida, habrá que agregar unaimportación de espacio de nombres, la importación que hay que hacer es al nombreque se ha indicado en la referencia.Para saber qué nombre se ha usado, le echaremos un vistazo al Explorador desoluciones, tal como vemos en la figura 5, si hemos usado el servicio de localhost, elnombre usado es precisamente localhost, en el caso de que hagamos la referencia alservicio Web publicado en una dirección de Internet, el nombre será otro, por tantohay que comprobar qué nombre es el que se ha usado en la referencia Web para sabercual usar.
  • 9. Figura 5En la figura 6 vemos cómo crear esa importación, si el espacio de nombres que hemosusado se llama wsEjemplo2. Figura 6, El espacio de nombres de la clase incluida en el servicio Web5- Una vez que tenemos la importación del espacio de nombres en el que está la clasedel servicio Web, podemos usar esa clase como cualquier otra de .NET, por ejemplopara crear una variable de dicha clase (llamada Conversor) y crear un nuevo objeto,habría que hacer lo siguiente, según el lenguaje usado:
  • 10. Para C# se usará este código: Conversor conv = new Conversor();Para Visual Basic .NET usaríamos esta otra sintaxis: Dim conv As New Conversor()6- El siguiente paso es crear el código a ejecutar cuando se haga click en el botónsuperior (para convertir de ºC a ºF), lo que tenemos que hacer es tomar el contenidode la caja de textos, convertirlo a un valor doble, crear un nuevo objeto de la claseconversora, llamar a la función que nos interese, le pasamos como parámetro el valorde los grados a convertir (que está en una de las cajas de textos) y el resultadodevuelto, (una vez convertido a tipo string), se asigna en la otra caja de textos.¿Mucho lío?Cuando veas el código lo entenderás mejor... ya que está comentado en cada una delas acciones indicadas anteriormente.Este es el código del evento Click del botón de convertir de grados centígrados(Celsius) a Fahrenheit:private void button1_Click(object sender, System.EventArgs e){ // Convertir de Centígrados a Fahrenheit this.label3.Text =""; try { // convertir el contenido del textBox en un valor doble // usando la función Parse de la clase Double double c = Double.Parse(textBox1.Text ); // creamos un nuevo objeto de la clase conversora Conversor conv = new Conversor(); // llamamos a la función de convertir ºC a ºF // el resultado que devuelve es un valor double // por tanto creamos una nueva variable y // le asignamos el valor devuelto por la función double f = conv.CaF(c); // asignamos a la otra caja de textos // el valor de la variable f, // pero convertido a una cadena textBox2.Text = f.ToString("0.##"); } catch(Exception ex) { label3.Text = ex.Message; }}7- Ahora sólo falta el código de convertir de grados Fahrenheit a Celsius
  • 11. CONSUMOUna vez que diseñe y distribuya un servicio web XML en un servidor, cualquierpersona podría llegar y beneficiarse con su funcionalidad.Suponiendo que el desarrollador de un sitio web bancario quiere usar uno de esosservicios para hacer cálculos de interés para los certificados de depósito. Suaplicación bancaria deberá usar o consumir su servicio, es decir, acceder y utilizarlos métodos disponibles de un servicio web XML. Los visitantes del sitio puedenusar la calculadora sin siquiera saber de donde provino.Cuando va a una gasolinera, los encargados le dan un servicio. Por ello usted esel consumidor del servicio. Puede aprovechar cualquier recurso que la gasolinerale ofrezca, como la bomba de gasolina, el tiempo y servicio de los encargados, asícomo otros elementos. Esto le ahorra el problema de crear su propia bomba degasolina o de dar servicio a su propio automóvil.El consumidor de un servicio web XML puede hacer exactamente lo mismo. Visitaun servicio y consume los recursos disponibles. Su equipo podría acceder a unservicio para el procesamiento de textos, por poner un ejemplo. Todas lascaracterísticas de este servicio estarían disponibles para usted, y no tendría queadquirir e instalar un procesador de textos.El consumidor de un servicio web XML puede ser casi cualquier aplicación deescritorio, una pagina ASP.NET o un dispositivo móvil con un teléfono portátil.Hay 3 etapas para consumir un servicio web xml 1. Obtener información del servicio (descubrimiento). 2. Generar un proxy o intermediario para el servicio. 3. Usar el proxy para invocar los servicios disponibles.
  • 12. El descubrimiento es el proceso por el que un cliente encuentra información de unservicio web xml. Por ejemplo, cuando va a un restaurante, primero lee el menúpara ver que ofrecen. Los consumidores hacen lo mismo con los servicios webXML necesitan saber que hace un servicio antes de usarlo. Figura 5.1 El proxy funge como intermediario entre un cliente y un servicio Figura 5.2 Pasos para consumir un servicio web XML
  • 13. EJEMPLOS SERVICIOS WEB GOOGLEGoogle API Chart es un servicio de Google para la creación de todo tipo de gráficas deuna manera rápida y sencilla, que no requiere instalación ninguna.Vamos a mostrar otro de los API de Google, puestos a disposición de los desarrolladoresde páginas web. Este API que nos ocupa sirve para hacer gráficos para la representaciónde datos, es decir, las típicas gráficas de barras, lineas, etc. que sirven para presentardatos estadísticos. Lo interesante de este sistema es que permite la creación de lasgráficas de una manera muy sencilla y sin la instalación de ningún componente adicionalen el servidor web.En este artículo de DesarrolloWeb.com vamos a presentar algunos ejemplos de gráficas yexpresar algunas de las generalidades y características de este API para crear gráficos.API Chart permite la creación de gráficas a partir de imágenes, con lo que, para mostraren la página una gráfica, lo único que tenemos que hacer es utilizar la etiqueta IMG deHTML. Para configurar la forma y datos del gráfico se debe definir simplemente la URL dela imagen en el atributo SRC de la etiqueta IMG.Así pues, para crear una gráfica en una página web, no hay que instalar ningúncomponente en el servidor, simplemente colocar una imagen en la página, con un códigocomo este:<imgsrc="http://chart.apis.google.com/chart?chs=400x100&cht=p&chd=t:45,25,10,20&chl=Valencia|Madrid|Barcelona|Lugo" width="400" height="100">Con lo que aparecerá una gráfica como la siguiente:Como se puede ver, para configurar la gráfica, lo único que tenemos que definir es elatributo SRC, que debería tener un formato como el siguiente (vamos a separar por partesla URL para generar la imagen, de modo que se puedan ver cada uno de loscomponentes):La URL del servicio de Google para el API de gráficas:http://code.google.com/intl/es/apis/chart/
  • 14. Luego, una serie de parámetros en la URL de acceso al API, para indicar los datos de lagráficas, estilos, leyendas y esas cosas:Tamaño de la imagen:chs=400x100Tipo de gráfico (en este caso de tarta o circular):cht=pDatos del gráfico:chd=t:45,25,10,20Los nombres de los campos que acompañan al gráfico:chl=Valencia|Madrid|Barcelona|LugoPor poner otro ejemplo de gráfico generado con el API de Google Chart, vamos a vercómo se crearía una gráfica de barras.<imgsrc="http://chart.apis.google.com/chart?chs=400x100&cht=bhg&chco=e5f867|aaaaaa|596605&chd=t:60,10,30&chdl=Me+gusta+%286+votos%29|no+me+gusta+%281+voto%29|nsnc+%283+votos%29" width="400" height="100">Este código mostraría una gráfica como esta:Posibilidades de las gráficas de Google API ChartVeamos ahora un resumen de las características y posibilidades de esta API para lacreación de gráficas.Tipos de Gráficas:API Chart soporta una cantidad grande de tipos de gráficos distintos, como gráficas debarras, de tarta, (2D y 3D), de líneas, puntos, etc. tiene además algunos tipos de gráficos
  • 15. bastante originales, como el Google O-Meter, que tiene una forma similar a unvelocímetro, con un abanico de posibilidades y una flecha que apunta al lugar de laestadística.Personalización de las gráficas:Existen varios elementos con los que se pueden personalizar las gráficas, como tamañode la imagen, colores, tamaño de los elementos, como las barras en las gráficas debarras, espaciado, títulos del gráfico, etc.Etiquetas y leyendas:Dispone de varias maneras para asignar textos a los valores de las gráficas, que ademásdependen del tipo de gráfica, pudiendo crear etiquetas y leyendas para identificar loselementos que se contabilizan en el gráfico.Datos contabilizados:Existe la posibilidad de configurar varios juegos de datos en la misma gráfica (en lasgráficas que lo permiten) y la carga de datos se puede realizar de varias maneras.Documentación de Google API ChartEste servicio de gráficas ofrecido por Google tiene una completa documentación, quetambién se encuentra disponible en Español. Por ello, os dejamos un enlace a la páginade documentación dentro de Google Code, donde podréis aprender a generar todo tipo degráficas.
  • 16. CREACIÓN DE SERVICIOS WCF PARA AJAX DE ASP.NET MICROSOFTAJAX de ASP.NET de Microsoft le permite crear rápidamente páginas web para que laexperiencia del usuario sea más satisfactoria gracias a elementos de la interfaz de usuariomás familiares y receptivos. AJAX de ASP.NET proporciona bibliotecas de scripts decliente que incorporan las tecnologías ECMAScript (JavaScript) y HTML dinámico(DHTML) para varios exploradores, y las integra en la plataforma de desarrollo paraservidores de ASP.NET 2.0. Gracias a las características de AJAX de ASP.NET puedemejorar la experiencia del usuario y la eficacia de sus aplicaciones web.AJAX de ASP.NET consta de bibliotecas de scripts de cliente y de componentes deservidor que se integran para proporcionar un marco de desarrollo robusto. Para teneracceso a un servicio desde una página ASP.NET: una vez que se agrega la URL deservicio al control del administrador de scripts de ASP.NET en la página, las operacionesde servicio se pueden invocar usando código JavaScript que tiene la misma aparienciaque una llamada de función de JavaScript normal. Vea Obtener información sobreASP.NET AJAX para obtener información sobre el uso de servicios Web dentro del marcode AJAX.La mayoría de los servicios de Windows Communication Foundation (WCF) se puedenexponer como servicio compatible con AJAX de ASP.NET agregando un extremo deAJAX de ASP.NET adecuado.Si está usando Visual Studio, puede utilizar una plantilla precompilada para servicios WCFcompatibles AJAX, disponible en el cuadro de diálogo Agregar nuevo elemento al trabajarcon sitios web de ASP.NET o aplicaciones web.Si no está utilizando las plantillas Visual Studio, hay dos maneras de crear un extremo deAJAX de ASP.NET: - Cree el extremo utilizando la activación de host dinámica sin utilizar ninguna configuración. Éste es el enfoque más básico si no se está muy familiarizado con el sistema de configuración de WCF. Para obtener más información, vea Cómo agregar un extremo AJAX de ASP.NET sin usar la configuración. - Agregue un extremo compatible con AJAX a un servicio de WCF mediante configuración. Para obtener más información, vea Uso de la configuración para agregar un extremo AJAX de ASP.NET.El modelo de programación web descrito en Información general del modelo deprogramación web HTTP de WCF se puede utilizar con servicios de AJAX de ASP.NET.De manera específica: - Puede utilizar los atributos WebGetAttribute y WebInvokeAttribute para seleccionar entre los verbos HTTP GET y HTTP POST. Si se utiliza correctamente, esto podría mejorar significativamente el rendimiento de la aplicación. Para obtener más información, vea Cómo elegir entre solicitudes HTTP POST y HTTP GET para extremos AJAX de ASP.NET.
  • 17. - Puede usar las propiedades ResponseFormat y ResponseFormat para que su servicio devuelva datos XML en lugar de hacerlo en el formato JSON (Javascript Object Notation) predeterminado. Si hace esto con el marco de AJAX de ASP.NET, el cliente JavaScript va a recibir un objeto DOM XML.A continuación se muestra un ejemplo de una operación que devuelve datos XML con eltipo de contenido establecido adecuadamente:[OperationContract, WebGet(ResponseFormat=WebMessageFormat.Xml)]public XElement GetData(){XElement x;//Get some data here...WebOperationContext.Current.OutgoingResponse.ContentType = "text/xml";return x;} - No se pueden cambiar otras propiedades de los atributos de las clases WebGetAttribute y WebInvokeAttribute si es necesaria la compatibilidad con AJAX de ASP.NET. Se pueden utilizar otros aspectos del modelo de programación web con tal de que no se infrinjan las convenciones de llamada de AJAX de ASP.NET.Los escenarios más avanzados requieren que se comprendan algunos detallesadicionales de compatibilidad de AJAX en WCF: - Para entender cómo se transfieren los datos entre un cliente de página de AJAX y un servicio de WCF utilizando JavaScript y para obtener detalles acerca de cómo se asignan los tipos de .NET Framework a los tipos de JavaScript, vea Compatibilidad con JSON y otros formatos de transferencia de datos. - Para aprovecharse de las características de ASP.NET, como, por ejemplo, la autenticación basada en URL y obtener acceso a la información de sesión de ASP.NET, puede que desee habilitar el modo de compatibilidad de ASP.NET mediante configuración.Los extremos de AJAX en WCF incluso se pueden utilizar sin el marco de AJAX deASP.NET. Para hacer esto es necesario comprender la arquitectura de compatibilidad deAJAX en WCF. Para ver una discusión sobre esta arquitectura, vea Modelo de objetos deprogramación web HTTP de WCF. Para ver un ejemplo de código que muestra esteenfoque, vea Servicio AJAX con ejemplo JSON y XML.
  • 18. SEGURIDAD EN LOS SERVICIOS WEBAutenticación:La autenticación es el proceso por el que se comprueba la identidad de alguien o algo,para ver si es lo que dice ser. Ese "alguien" o "algo" se denomina principal. Laautenticación requiere pruebas de identidad, denominadas credenciales. Por ejemplo, unaaplicación cliente puede presentar una contraseña como sus credenciales. Si la aplicacióncliente presenta las credenciales correctas, se asume que es quien dice ser.Autorización:Una vez que se ha autenticado la identidad de un principal, deben tomarse decisionessobre la autorización. El acceso se determina comparando la información del principal coninformación de control de acceso, como listas de control de acceso (ACL. Es posible quelos clientes tengan distintos grados de acceso. Por ejemplo, algunos clientes puedentener acceso total a los servicios Web XML, mientras que otros estarían autorizados sóloa ciertas operaciones. A algunos clientes se les permitirá un acceso total a todos losdatos, mientras que a otros sólo se les permitirá acceso a un subconjunto de los datos yotros tendrán acceso de sólo lectura.Un modo sencillo de implementar servicios Web XML Web consiste en aprovechar lascaracterísticas de autenticación del protocolo que se utilice para intercambiar mensajes.Para la mayoría de los servicios Web XML, esto significa aprovechar las características deautenticación disponibles en HTTP. Microsoft Internet Información Server (IIS) e ISAServer funcionan en conjunción con Windows 2000 Server y ofrecen soporte para variosmecanismos de autenticación en HTTP.  Básica: utilizada para identificación no segura o poco segura de clientes, ya que el nombre de usuario y la contraseña se envían como texto codificado en base 64, que puede ser fácilmente descodificado. IIS autorizará el acceso a los servicios Web XML si las credenciales coinciden con las de una cuenta de usuario válida.  Básica sobre SSL: igual que la autenticación básica, excepto que el canal de comunicación está cifrado y protege de ese modo el nombre de usuario y la contraseña. Una buena opción para entornos en Internet; sin embargo, el uso de SSL influye negativamente en el rendimiento.  Implícita: utiliza algoritmos hash para transmitir las credenciales del cliente de forma segura. Sin embargo, es posible que no sea compatible con todas las herramientas de desarrollo para generar clientes de servicios Web XML. IIS autorizará el acceso a los servicios Web XML si las credenciales coinciden con las de una cuenta de usuario válida.  Autenticación de Windows integrada: resulta útil sobre todo en entornos en Intranet. Utiliza NTLM o Kerberos. El cliente debe pertenecer al mismo dominio que el servidor o a un dominio en el que el dominio del servidor confía. IIS autorizará el acceso a los servicios Web XML si las credenciales coinciden con las de una cuenta de usuario válida.
  • 19.  Certificados de cliente a través de SSL: requiere que cada cliente obtenga un certificado. Los certificados se asignan a las cuentas de usuario, que son utilizadas por IIS para autorizar el acceso a los servicios Web XML. Se trata de una solución viable para entornos en Internet, aunque el uso de certificados digitales no está muy extendido actualmente. Es posible que no sea compatible con todas las herramientas de desarrollo para generar clientes de servicios Web XML. Sólo está disponible en conexiones SSL, de modo que el rendimiento puede verse afectado.Desde la perspectiva de alguien que intenta implementar servicios Web XML, una de lasventajas de utilizar estos mecanismos de autenticación es que no se necesita escribirnuevo código. IIS/ISA Server completa todo el proceso de autenticación y autorizaciónACL antes de llamar a los servicios Web XML. Sin embargo, al implementar el cliente seránecesario realizar algunas tareas adicionales. La aplicación cliente necesitará responder alas peticiones de autenticación y credenciales del servidor.Entre los métodos para la implementación de autenticación en servicios Web XMLtambién se incluyen servicios de terceros, como los que se encuentran en Microsoft® .NET Passport, características de sesión de Microsoft ASP.NET o la creación de métodosde autenticación personalizados.InteroperabilidadComo puede ver, las técnicas habituales para crear aplicaciones Web seguras se puedenaplicar por separado o combinadas a la hora de proteger servicios Web XML. Estastécnicas ya se han utilizado en el pasado y resultan bastante efectivas. Sin embargo, noofrecen una solución integrada dentro de la arquitectura de servicios Web XML. Conformeaumenta la complejidad del entorno de servicios Web XML (sobrepasando los límites dela confianza, extendiéndose a múltiples sistemas o empresas) los responsables deimplementarlos tienen que recurrir a soluciones personalizadas que, si bien resultaneficaces, no ofrecen una interoperabilidad total.Para hacer frente a estas necesidades y mejorar la interoperabilidad entre servicios WebXML, Microsoft y sus socios están trabajando en un conjunto de especificaciones deseguridad basadas en el mecanismo de extensibilidad de la especificación SOAP paraofrecer funciones de seguridad mejoradas e integradas en el núcleo mismo de losservicios Web XML.Una de las principales especificaciones que se están desarrollando es el lenguaje deseguridad de servicios Web XML (WS-Security) que proporciona mejoras en la mensajeríaSOAP, consistentes en tres funcionalidades: transferencia de credenciales, integridad demensajes y confidencialidad. Estas funcionalidades no proporcionan por sí mismas unasolución de seguridad completa; WS-Security es una pieza que se puede utilizar enconjunción con la infraestructura y otros protocolos de servicios Web XML para hacerfrente a un gran número de requisitos de seguridad de aplicaciones.
  • 20. La arquitectura de servicios Web XML globales de Microsoft alberga a WS-Security yotras especificaciones relacionadas y proporciona un marco para la evolución de lainfraestructura de los servicios Web XML.

×