12.07.2015 Views

De la seguridad en Servicios Web para .Net - Willy .Net

De la seguridad en Servicios Web para .Net - Willy .Net

De la seguridad en Servicios Web para .Net - Willy .Net

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Puede g<strong>en</strong>erar un proxy de servicio <strong>Web</strong> mediante <strong>la</strong> utilidad de <strong>la</strong> línea decomandos Wsdl.exe. Si utiliza Visual Studio .NET también puede g<strong>en</strong>erar el proxyagregando una refer<strong>en</strong>cia <strong>Web</strong> al proyecto.Nota: si el servicio <strong>Web</strong> <strong>para</strong> el que desea g<strong>en</strong>erar un proxy está configurado <strong>para</strong>requerir certificados de cli<strong>en</strong>te, deberá deshabilitar temporalm<strong>en</strong>te dicho requisitomi<strong>en</strong>tras agrega <strong>la</strong> refer<strong>en</strong>cia; de lo contrario se producirá un error. Una vezagregada <strong>la</strong> refer<strong>en</strong>cia, no olvide volver a configurar el servicio <strong>para</strong> que exija loscertificados.Un <strong>en</strong>foque alternativo consiste <strong>en</strong> mant<strong>en</strong>er fuera de línea un archivo WSDL(L<strong>en</strong>guaje de descripción de servicios <strong>Web</strong>) de los servicios <strong>Web</strong> <strong>para</strong> que estédisponible <strong>para</strong> <strong>la</strong>s aplicaciones de consumidor. Es importante que recuerdeactualizarlo si se modifica <strong>la</strong> interfaz del Servicio <strong>Web</strong>.Especificar <strong>la</strong>s cred<strong>en</strong>ciales de cli<strong>en</strong>te <strong>para</strong> <strong>la</strong>aut<strong>en</strong>ticación de WindowsEl uso de <strong>la</strong> aut<strong>en</strong>ticación de Windows requiere especificar <strong>la</strong>s cred<strong>en</strong>ciales quedeb<strong>en</strong> utilizarse <strong>para</strong> <strong>la</strong> aut<strong>en</strong>ticación mediante <strong>la</strong> propiedad Cred<strong>en</strong>tials del proxyde servicio <strong>Web</strong>. Si no establece esta propiedad de forma expresa, se efectuará <strong>la</strong>l<strong>la</strong>mada al servicio <strong>Web</strong> sin utilizar cred<strong>en</strong>ciales. Cuando se requiere <strong>la</strong> aut<strong>en</strong>ticaciónde Windows, se g<strong>en</strong>erará un estado HTTP 401, de respuesta de acceso d<strong>en</strong>egado.Utilizar <strong>De</strong>faultCred<strong>en</strong>tialsLas cred<strong>en</strong>ciales de cli<strong>en</strong>te no se transfier<strong>en</strong> de forma implícita. Es el consumidor delservicio <strong>Web</strong> qui<strong>en</strong> debe establecer <strong>la</strong>s cred<strong>en</strong>ciales y los detalles de <strong>la</strong>aut<strong>en</strong>ticación <strong>en</strong> el proxy. Para transferir el contexto de <strong>seguridad</strong> del contexto de<strong>seguridad</strong> Windows del cli<strong>en</strong>te (sea desde un testigo de subproceso sup<strong>la</strong>ntado seadesde un testigo de proceso) a un servicio <strong>Web</strong>, establezca <strong>la</strong> propiedadCred<strong>en</strong>tials del proxy de servicio <strong>Web</strong> <strong>en</strong> Cred<strong>en</strong>tialCache.<strong>De</strong>faultCred<strong>en</strong>tials talcomo se muestra a continuación.proxy.Cred<strong>en</strong>tials = System.<strong>Net</strong>.Cred<strong>en</strong>tialCache.<strong>De</strong>faultCred<strong>en</strong>tials;T<strong>en</strong>ga <strong>en</strong> cu<strong>en</strong>ta los sigui<strong>en</strong>tes aspectos antes de utilizar este <strong>en</strong>foque:Este método transfiere <strong>la</strong>s cred<strong>en</strong>ciales del cli<strong>en</strong>te únicam<strong>en</strong>te cuando seutiliza <strong>la</strong> aut<strong>en</strong>ticación NTLM, Kerberos o negociada.Si una aplicación de cli<strong>en</strong>te (por ejemplo, una aplicación de formu<strong>la</strong>rios deWindows) l<strong>la</strong>ma al servicio <strong>Web</strong>, <strong>la</strong>s cred<strong>en</strong>ciales se obt<strong>en</strong>drán de <strong>la</strong> sesión deinicio de sesión interactiva del usuario.Las aplicaciones de servidor, como <strong>la</strong>s aplicaciones <strong>Web</strong> de ASP.NET, utilizan<strong>la</strong> id<strong>en</strong>tidad de proceso, salvo que se haya configurado <strong>la</strong> sup<strong>la</strong>ntación, <strong>en</strong>cuyo caso se utiliza <strong>la</strong> id<strong>en</strong>tidad del l<strong>la</strong>mador sup<strong>la</strong>ntado.Utilizar cred<strong>en</strong>ciales específicasPara utilizar un conjunto específico de cred<strong>en</strong>ciales de aut<strong>en</strong>ticación <strong>para</strong> l<strong>la</strong>mar a unservicio <strong>Web</strong>, utilice el sigui<strong>en</strong>te código.Cred<strong>en</strong>tialCache cache = new Cred<strong>en</strong>tialCache();cache.Add( new Uri(proxy.Url), // <strong>Web</strong> service URL"Negotiate", // Kerberos or NTLMnew <strong>Net</strong>workCred<strong>en</strong>tial("username", "password", "domainname") );proxy.Cred<strong>en</strong>tials = cache;

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!