Compartir a través de


Cómo establecer las funcionalidades de red (HTML)

[ Este artículo está destinado a desarrolladores de Windows 8.x y Windows Phone 8.x que escriben aplicaciones de Windows en tiempo de ejecución. Si estás desarrollando para Windows 10, consulta la documentación más reciente

En este tema, se explica el concepto de aislamiento de red y cómo establecer las funcionalidades de red para controlar totalmente el acceso a la red de una aplicación de Windows en tiempo de ejecución. Las funcionalidades de red garantizan que tus aplicaciones de Windows en tiempo de ejecución tengan acceso a los recursos de red necesarios y que el usuario final reciba expectativas precisas en cuanto al nivel de acceso. Si comprendes este tema, tu aplicación de Windows en tiempo de ejecución podrá conectarse a recursos de red de manera apropiada. El aislamiento de red garantiza el acceso de las aplicaciones de Windows en tiempo de ejecución a los recursos de red solo después de solicitar específicamente la funcionalidad adecuada.

Lo que debes saber

Tecnologías

Requisitos previos

  • La siguiente información se aplica a cualquier aplicación de Windows en tiempo de ejecución conectada o que esté preparada para una red que necesite establecer conexiones de red. Esto afecta a las aplicaciones escritas en JavaScript. También afecta a aquellas escritas con .NET Framework 4.5 en C#, VB.NET y C++.

Lista de comprobación para el aislamiento de red

Usa esta lista de comprobación para asegurarte de que el aislamiento de red esté configurado para tu aplicación.

  • Determina la dirección del acceso a la red que necesita la aplicación. Puede ser solicitudes salientes iniciadas por el cliente o solicitudes entrantes no solicitadas, o bien, una combinación de ambos tipos de solicitudes de red.
  • Determina el tipo de recursos de red con los que se comunicará la aplicación. Una aplicación puede necesitar comunicarse con recursos de confianza en una red doméstica o de trabajo. Una aplicación puede necesitar comunicarse con recursos de Internet. Una aplicación puede necesitar acceso a ambos tipos de recursos de red.
  • Configura las funcionalidades de aislamiento de red que se requieren como mínimo en el manifiesto de la aplicación. Estas funcionalidades se configuran normalmente con Microsoft Visual Studio 2013 cuando se desarrolla la aplicación.
  • Implementa y ejecuta tu aplicación para probarla usando las herramientas de aislamiento de red provistas para la solución de problemas.

Más información sobre el aislamiento de red

No todas las aplicaciones requieren acceso a la red, pero para las aplicaciones que sí lo necesitan, Windows 8.1 ofrece distintos niveles de acceso a la red que pueden habilitarse al seleccionar las funcionalidades apropiadas.

El aislamiento de red permite definir el alcance del acceso a la red requerido para cada aplicación. Las solicitudes de acceso a la red se dividen en dos categorías:

  • Solicitudes iniciadas por clientes salientes
    La aplicación actúa como cliente e inicia el acceso a la red mediante el envío de una solicitud de red inicial a un equipo remoto, por lo general, un servidor. La aplicación cliente envía una o varias solicitudes al servidor y el servidor envía una sola respuesta o varias a la aplicación cliente. Todo el tráfico de una aplicación cliente web a un servidor web entraría en esta categoría.

  • Solicitudes no solicitadas entrantes
    La aplicación actúa como un servidor de red y escucha las solicitudes de red entrantes de un equipo remoto. El equipo remoto inicia el acceso a la red mediante el envío de una solicitud inicial a la aplicación, que actúa como servidor. El equipo remoto envía una o varias solicitudes a la aplicación, que envía una o varias respuestas al equipo remoto. Una aplicación que funciona como un servidor multimedia entraría en esta categoría.

Una aplicación con un alcance no definido no puede tener acceso al tipo especificado de conexión de red. La capacidad de establecer y aplicar el aislamiento de red garantiza que si una aplicación se ve comprometida, solo puede tener acceso a las redes a las que la aplicación tiene otorgado el acceso. Esto reduce notablemente el alcance del impacto en otras aplicaciones y en el sistema.

El aislamiento de red afecta a todos los métodos y las propiedades de los siguientes espacios de nombres que intentan acceder a la red.

Windows aplica activamente el aislamiento de red. Una llamada a un método o cualquier acceso a una propiedad de estos espacios de nombres que tenga como fin el acceso a la red pueden fallar debido al aislamiento de la red, si es que no se ha habilitado la funcionalidad de red apropiada. También se ven afectadas las clases de otros espacios de nombres que llaman a métodos o acceden a propiedades en los espacios de nombres mencionados anteriormente.

Las funcionalidades de red de una aplicación se configuran en el manifiesto de la aplicación cuando se crea. Las funcionalidades de red se agregan, por lo general, con Visual Studio cuando se desarrolla la aplicación. Estas funcionalidades se pueden establecer manualmente en el archivo de manifiesto de la aplicación con un editor de texto.

Capacidades y aislamiento de red

El aislamiento de red forma parte del modelo de seguridad de la aplicación usado por Windows 8. Windows detecta activamente los límites de la red y aplica las restricciones de acceso a la red para el aislamiento. Estos son los límites de red que el sistema busca:

  • Red doméstica/trabajo
    Se trata de tu red doméstica o de trabajo local. Está compuesta por las subredes locales a las que está conectado el equipo y por los proxy locales configurados como parte de la red. Los servidores proxy de Internet no están incluidos. En un entorno de dominio, incluye rangos definidos por las subredes y los sitios de Active Directory

  • Internet
    Internet, sin incluir la red doméstica o de trabajo. Está compuesto de cualquier proxy que proporcione acceso a Internet. Cualquier acceso a la red que no forme parte de tu red doméstica o de trabajo se considera Internet.

Windows 8 categoriza todos los host de red remota en una de estas dos categorías. Si comprendes la dirección y categorización correspondientes a los hosts que se comunican con tu aplicación, podrás elegir las funcionalidades adecuadas para la aplicación.

Ciertas funcionalidades relacionadas con redes deben habilitarse en el manifiesto de la aplicación para que se garantice el acceso a la red de la aplicación. Estas funcionalidades se definen como identificadores de seguridad (SID) que usa Windows 8 para aplicar los límites.

Definamos las funcionalidades de aislamiento de red:

Término usado en Visual Studio Descripción

Internet (cliente)

Proporciona acceso saliente a Internet y a redes en lugares públicos, como aeropuertos y cafeterías. La mayoría de las aplicaciones que precisan de acceso a Internet deben usar esta funcionalidad.

Es la funcionalidad internetClient en el manifiesto de la aplicación.

Internet (cliente y servidor)

Proporciona a la aplicación acceso entrante y saliente de Internet y de redes en lugares públicos, como aeropuertos y cafeterías.

Es la funcionalidad internetClientServer en el manifiesto de la aplicación.

Redes privadas (cliente y servidor)

Otorga a la aplicación acceso entrante y saliente a la red en lugares de confianza del usuario, como su hogar o el trabajo.

Es la funcionalidad privateNetworkClientServer en el manifiesto de la aplicación.

 

Nota  

Las aplicaciones de la Tienda de Windows Phone tienen una única funcionalidad de red que permite todo el acceso a la red de la aplicación. La funcionalidad Internet (cliente y servidor) permite el acceso completo a la red tanto en las operaciones de cliente (acceso saliente) como en las operaciones de servidor (acceso entrante). Sin embargo, si alguna de las funcionalidades de red (internetClient, internetClientServer o privateNetworkClientServer) está especificada en el archivo Package.appxmanifest, una aplicación de la Tienda de Windows Phone tendrá acceso completo a la red en tiempo de ejecución tanto en las operaciones de cliente como en las de servidor.

Cuando desarrollas y compruebas tu aplicación de la Tienda de Windows Phone en Visual Studio, obtendrás la funcionalidad de red (Internet (cliente y servidor)) al ejecutar la aplicación, aun cuando no hayas especificado esta funcionalidad en el archivo de manifiesto de la aplicación. Cuando publicas la aplicación, por el contrario, no obtendrás esta funcionalidad de manera automática. Procura seleccionar la funcionalidad Internet (cliente y servidor) en la página Funcionalidad del diseñador de manifiestos en caso de que tu aplicación precise de conectividad de red.

Es posible que deban habilitarse otras funcionalidades en el manifiesto para tener acceso a la red. Estas funcionalidades se definen como GUID, que se usan para aplicar los límites.

Término usado en Visual Studio Descripción

Autenticación de empresa

Permite que una aplicación se conecte a los recursos de red que precisan credenciales de dominio. Esta funcionalidad requiere que un administrador de dominio habilite la función para todas las aplicaciones. Un ejemplo sería una aplicación que recupera datos de servidores Sharepoint de intranet.

Con esta funcionalidad puedes usar tus credenciales para acceder a recursos de la red en una red que exija credenciales. Una aplicación con esta funcionalidad puede suplantarte en la red.

Esta funcionalidad no es necesaria para que la aplicación pueda acceder a Internet a través de un proxy de autenticación.

Es la funcionalidad enterpriseAuthentication en el manifiesto de la aplicación.

Proximidad

Es necesaria para la comunicación de datos en proximidad con dispositivos que se encuentran cerca del equipo. La comunicación de datos en proximidad puede usarse para realizar envíos o para conectar con una aplicación de un dispositivo cercano.

Esta funcionalidad permite que la aplicación acceda a la red para conectarse a un dispositivo en proximidad, con el consentimiento del usuario para enviar una invitación o aceptarla.

Es la funcionalidad proximity en el manifiesto de la aplicación.

Certificados de usuario compartidos

Esta funcionalidad permite que la aplicación obtenga acceso a los certificados de software y hardware como, por ejemplo, los certificados de una tarjeta inteligente. Cuando se invoca esta funcionalidad en tiempo de ejecución, el usuario debe realizar acciones, como insertar una tarjeta o seleccionar un certificado.

Con esta funcionalidad, se usan los certificados de software y hardware o una tarjeta inteligente para la identificación en la aplicación. Esta funcionalidad la pueden usar para la identificación el empleador, el banco o los servicios gubernamentales.

Es la funcionalidad sharedUserCertificates en el manifiesto de la aplicación.

 

Es posible que ciertas funcionalidades del dispositivo que están relacionadas con el acceso al dispositivo también deban habilitarse en el manifiesto de la aplicación para que el acceso a la red funcione como se espera. Estas funcionalidades del dispositivo se definen como GUID, que el sistema usa para aplicar los límites.

Término usado en Visual Studio Descripción

Cámara web

Proporciona acceso a la fuente de vídeo de la cámara web.

Esta funcionalidad es necesaria si la aplicación quiere compartir una fuente de vídeo de la cámara web con un equipo remoto a través de la red.

Es la funcionalidad webcam en el manifiesto de la aplicación.

 

Es importante que entiendas qué funcionalidades son necesarias para tu aplicación. En la siguiente tabla se enumeran algunas operaciones comunes y las funcionalidades que se necesitan:

Capacidades requeridas

Aplicación Descripción

Un cliente web no solo consume contenido. Esto incluye aplicaciones que cargan HTML desde un sitio web y aplicaciones que usan la sindicación RSS o el protocolo AtomPub.

internetClient

Una aplicación de red social. Esto incluye una aplicación que consume y produce contenido en un sitio de red social.

internetClient

Una aplicación de punto a punto (p2p). Esto incluye una aplicación que proporciona acceso a mensajería instantánea o chat.

internetClientServer

Una aplicación para compartir en una red doméstica o de trabajo. Esto incluye una aplicación que accede a contenido de medios o de almacenamiento conectado a la red (NAS).

privateNetworkClientServer

Una aplicación de línea de negocio en el hogar o el trabajo. Esto incluye una aplicación que actúa como un cliente HTTP o usa sockets o WebSockets.

privateNetworkClientServer

Una aplicación de productividad con características de redes en el hogar o en el trabajo. Esto incluye una aplicación de productividad que accede a características de red.

privateNetworkClientServer

Una aplicación de juegos que requiere acceso a la red.

internetClient

Una aplicación de juegos online multijugador que establece contacto con adversarios.

internetClient

Un juego multijugador con personas cercanas.

proximity

Una aplicación de juegos multijugador que detecta jugadores mediante la detección multidifusión o mediante la multidifusión.

internetClientServer

Una aplicación de juegos multijugador que usa la red doméstica o del trabajo. Esto incluye una aplicación que detecta jugadores con detección multidifusión o es detectada mediante multidifusión.

privateNetworkClientServer

Una aplicación de difusión. Esto incluye una aplicación que recibe difusiones de radio a través de Internet.

internetClient

 

Aislamiento y límites de red

Para que Windows 8.1 aplique el aislamiento de red, el sistema debe detectar y determinar los límites de red. Windows 8.1 realiza la detección de manera dinámica. El sistema sondea la red para detectar las direcciones en las interfaces de red del equipo local y cualquier dirección con las que las interfaces estén enlazadas para determinar la presencia de puertas de enlace o direcciones IP que actúan como un punto de acceso entrante o saliente para Internet. Se detectará lo siguiente:

  • Direcciones locales y subredes usadas por una red doméstica o de trabajo.
  • Puertas de enlace de Internet y servidores proxy de acceso a Internet.

Las subredes y las direcciones IPv4 locales típicas detectadas en el hogar o el trabajo incluyen los siguientes intervalos de direcciones IPv4 privadas:

  • 10.0.0.0-10.255.255.255
  • 172.16.0.0-172.31.255.255
  • 192.168.0.0-192.168.255.255

Las subredes y las direcciones IPv6 locales típicas detectadas en el hogar o el trabajo incluyen los siguientes intervalos de direcciones IPv6:

  • La subred IPv6 local asociada con la dirección IPV6.
  • Direcciones IPv6 locales de vínculo (fe80::/10).
  • Direcciones de túnel IPv6 usadas para tecnologías de transición (6to4 e ISATAP, por ejemplo), sin incluir el intervalo de direcciones IPv6 usado por Teredo (2001::/32).

Cuando el usuario conecta por primera vez su equipo a una red, una red LAN inalámbrica (Wi-Fi) en su casa, tiene la opción de habilitar el uso compartido en la red. Windows usa esta decisión para categorizar la red como de confianza o de no confianza.

El extremo de una red se considera parte de la red doméstica o del trabajo, si se cumplen algunas de estas condiciones:

  • Es parte de la subred local de una red de confianza que indicó el usuario. Por ejemplo, los usuarios de una red doméstica, por lo general, marcan su red como de confianza. Los equipos de la subred local se designarán como parte de la red doméstica o de trabajo.
  • Un equipo está en una red y se autentica en un controlador de dominio. Los extremos de red dentro de una subred local se consideran privados. Los extremos de red dentro del espacio de direcciones de intranet se consideran privados.
  • El equipo se configura para DirectAccess y el extremo de red es parte del espacio de direcciones de intranet.

El espacio de direcciones de intranet se compone de subredes y sitios configurados de Active Directory, y está configurado para el aislamiento de red de Windows mediante el uso de una directiva de grupo. Los equipos unidos a un dominio le pedirán esta información a Active Directory y a la directiva de grupo.

Todos los otros extremos de red que no cumplan con los criterios mencionados anteriormente se consideran extremos de red de Internet.

Para obtener más información acerca de los controles de administrador para el aislamiento de red, consulta Aislar aplicaciones de la Tienda Windows en la red

Aplicación y aislamiento de red

Cuando una aplicación intenta una solicitud saliente iniciada por el cliente (por ejemplo, una solicitud web HTTP a www.contoso.com), el sistema realizará una comprobación de las funcionalidades habilitadas para la aplicación en su manifiesto y decidirá si permitir o bloquear la solicitud saliente iniciada por el cliente al host específico (por ejemplo, www.contoso.com). Si se autoriza la solicitud saliente iniciada por el cliente, también se permiten las respuestas del servidor a las solicitudes salientes.

Cuando una aplicación intenta escuchar solicitudes entrantes no solicitadas, el sistema realiza una comprobación de las funcionalidades configuradas para la aplicación en su manifiesto y toma la decisión de permitir o bloquear la solicitud entrante no solicitada de una dirección IP remota. La aplicación debe tener habilitada la funcionalidad InterentClientServer o privateNetworkClientServer para poder escuchar solicitudes entrantes no solicitadas. Si al menos una de estas funcionalidades está habilitada, la aplicación puede escuchar en un puerto o en varios puertos las solicitudes no solicitadas en el tipo de red especificado. Cada intento de solicitud entrante no solicitada se comprueba para determinar si se admite una solicitud entrante no solicitada de la dirección IP de origen remoto especificada. Windows determina si la solicitud entrante no solicitada proviene de una dirección IP doméstica o de trabajo o de Internet, y permite o deniega el acceso según las funcionalidades habilitadas y la dirección remota específica.

El aislamiento de red está totalmente integrado con los componentes de proximidad. Cuando la funcionalidad de proximidad está habilitada en el manifiesto de la aplicación, no es necesario que ninguna otra funcionalidad de red adicional esté habilitada. Igualmente el usuario debe estar de acuerdo para enviar o aceptar una invitación del dispositivo en proximidad para permitir la comunicación entre el dispositivo en proximidad y el equipo local.

Bucle invertido y aislamiento de red

Las direcciones de bucle invertido IP y la interfaz de bucle invertido se han usado tradicionalmente para la comunicación entre distintas aplicaciones a través de la red, así como para la comunicación entre procesos de varias aplicaciones en un equipo local.

Normalmente, las comunicaciones de red mediante una dirección de bucle invertido IP no se pueden usar para comunicarse entre procesos (entre dos aplicaciones diferentes), dado que esto está restringido por el aislamiento de red. La comunicación de red mediante una dirección de bucle invertido IP está permitida en de una aplicación dentro del mismo proceso para fines de comunicación.

Para obtener más información acerca de cómo habilitar el acceso del desarrollador a direcciones de bucle invertido IP entre aplicaciones diferentes para fines de depuración, consulta Cómo habilitar el aislamiento de red de bucle invertido y de depuración.

Transferencias en segundo plano y notificaciones del sistema

Las clases BackgroundDownloader y BackgroundUploader del espacio de nombres Windows.Networking.BackgroundTransfer en Windows 8.1, Windows Phone 8.1 y Windows Server 2012 R2 admiten opciones para que el usuario reciba notificaciones del sistema y de icono cuando una transferencia se realiza correctamente o con errores.

Para que una aplicación con Windows.Networking.BackgroundTransfer pueda comunicarse a través de una notificación del sistema, debes declarar que tiene Capacidad de aviso en el archivo de manifiesto de la aplicación. Esta opción no está en la sección Funcionalidades con la configuración de aislamiento de red. La opción Capacidad de aviso está en la sección Notificaciones de la ficha Aplicación. Establece la opción Capacidad de aviso en "Sí" para que la aplicación pueda recibir notificaciones del sistema.

Si la opción Capacidad de aviso no se habilita en el manifiesto de la aplicación, se omitirá toda configuración de notificación en el espacio de nombres Windows.Networking.BackgroundTransfer y la aplicación no recibirá notificaciones del sistema.

Nota  El usuario puede activar o desactivar las notificaciones del sistema para tu aplicación en cualquier momento.

 

Para obtener más información acerca de las notificaciones del sistema, consulta Enviar notificaciones del sistema y Cómo elegir recibir notificaciones del sistema.

Temas relacionados

Otros recursos

Declaraciones de funcionalidades de la aplicación

Manifiesto de paquetes de aplicación

Capability

DeviceCapability

Cómo habilitar el bucle invertido y depurar el aislamiento de red

Cómo elegir recibir notificaciones del sistema

Enviar notificaciones del sistema

Solución de problemas y depuración de las conexiones de red

Referencia

HttpClient

IXMLHTTPRequest2

System.Net.Http

Windows.Networking.BackgroundTransfer

Windows.Networking.Sockets

Windows.Web.AtomPub

Windows.Web.Http

Windows.Web.Http.HttpClient

Windows.Web.Syndication

Muestras

Muestra de HttpClient

Muestra de StreamSocket