Como definir recursos de rede (HTML)

[ Este artigo destina-se aos desenvolvedores do Windows 8.x e do Windows Phone 8.x que escrevem aplicativos do Windows Runtime. Se você estiver desenvolvendo para o Windows 10, consulte documentação mais recente]

Este tópico explica o conceito de isolamento de rede e como definir os recursos de rede para controlar totalmente o acesso à rede de um aplicativo do Tempo de Execução do Windows. Os recursos de rede garantem que os aplicativos do Tempo de Execução do Windows tenham acesso aos recursos de rede necessários e que sejam fornecidas ao usuário final expectativas precisas relativas aos níveis de acesso. Entendendo este tópico, você assegurará que seu aplicativo do Tempo de Execução do Windows possa se conectar aos recursos de rede adequadamente. O isolamento de rede assegura que os aplicativos do Tempo de Execução do Windows tenham acesso a recursos da rede somente após solicitar especificamente a funcionalidade correta.

O que você precisa saber

Tecnologias

Pré-requisitos

  • As informações a seguir se aplicam a qualquer aplicativo do Tempo de Execução do Windows conectado ou com reconhecimento de rede que precise criar conexões de rede. Isso afeta os aplicativos escritos em JavaScript. Isso também afeta os aplicativos escritos usando o .NET Framework 4.5 em C#, VB.NET e C++.

Lista de verificação do isolamento de rede

Use esta lista de verificação para verificar se o isolamento de rede está configurado para seu aplicativo.

  • Determine a direção do acesso à rede necessário para o aplicativo. Isso pode ser as solicitações iniciadas pelo cliente ou as solicitações de entrada não solicitadas ou pode ser uma combinação desses dois tipos de solicitação.
  • Determine o tipo de recursos de rede com os quais o aplicativo se comunicará. Um aplicativo pode ser necessário para a comunicação com os recursos confiáveis em uma rede Doméstica ou de Trabalho. Um aplicativo pode precisar se comunicar com os recursos na Internet. Um aplicativo pode precisar acessar os dois tipos de recursos de rede.
  • Configure o mínimo necessário de funcionalidades de isolamento de rede no manifesto do aplicativo. Esses recursos são geralmente configurados usando o Microsoft Visual Studio 2013 quando o aplicativo é desenvolvido.
  • Implante e execute o aplicativo para testá-lo usando as ferramentas de isolamento de rede fornecidas para solução de problemas.

Mais informações sobre o isolamento de rede

Nem todos os aplicativos exigem acesso à rede, mas para os que exigem, o Windows 8.1 fornece níveis diferentes de acesso à rede que podem ser habilitados selecionando os recursos apropriados.

O isolamento de rede permite que você defina o escopo do acesso à rede necessário para cada aplicativo. As solicitações de acesso à rede se dividem em duas categorias:

  • Solicitações de saída iniciadas pelo cliente
    O aplicativo age como o cliente e inicia o acesso à rede enviando uma solicitação de rede inicial a um computador remoto, geralmente um servidor. O aplicativo cliente envia uma ou mais solicitações para o servidor e o servidor envia de volta uma única resposta ou várias respostas para o aplicativo cliente. Todo o tráfego do aplicativo cliente da Web para um servidor Web estaria nessa categoria.

  • Solicitações de entrada não solicitadas
    O aplicativo age como um servidor e ouve as solicitações de rede de entrada que vêm de um computador remoto. O computador remoto inicia o acesso à rede enviando uma solicitação inicial para o aplicativo, que age como o servidor. O computador remoto envia uma ou mais solicitações para o aplicativo, que envia de volta uma ou mais solicitações para o computador remoto. Um aplicativo que funciona como um servidor de mídia estaria nessa categoria.

Um aplicativo com um escopo indefinido é impedido de acessar o tipo especificado de conexão de rede. A capacidade de definir e impor o isolamento de rede garante que o aplicativo só possa acessar as redes em que o aplicativo tem acesso explícito caso este aplicativo esteja comprometido. Isso reduz significativamente o escopo do impacto em outros aplicativos e no sistema.

O isolamento de rede afeta todos os métodos e as propriedades nos namespaces a seguir que tentem acessar a rede.

O Windows impõe ativamente o isolamento de rede. Uma chamada para um método ou qualquer acesso a uma propriedade nestes namespaces que resulta no acesso à rede pode falhar quando o recurso de rede apropriado não está habilitado. As classes em outros namespaces que chamam métodos ou acessam propriedades nos namespaces também são afetadas.

Os recursos de rede de um aplicativo são configurados no manifesto do aplicativo quando ele é compilado. Esses recursos são geralmente adicionando usando o Visual Studio durante o desenvolvimento do aplicativo. Os recursos de rede podem ser definidos manualmente no arquivo de manifesto no aplicativo usando um editor de texto.

Isolamento de rede e recursos

O isolamento de rede faz parte do modelo de segurança do aplicativo usado pelo Windows 8. O Windows descobre ativamente os recursos de rede e impõe as restrições de acesso à rede do isolamento de rede. Estes são os recursos de rede que o sistema procurará:

  • Rede doméstica/corporativa
    Esta é sua rede local doméstica ou comercial. Ela é composta das subredes locais às quais o computador está conectado e dos proxies locais configurados como parte da rede. Os proxies da Internet foram excluídos deste limite. Em um ambiente de domínio, isso inclui os intervalos definidos por Sites do Active Directory e subredes.

  • Internet
    A Internet, excluindo a rede doméstica ou de trabalho. Esta é composta de qualquer proxy que fornece acesso à Internet. Qualquer acesso à rede que não faz parte da Rede Doméstica\de Trabalho é considerado como a Internet.

O Windows 8 categoriza todos os hosts de rede remotos em uma destas categorias. Entendendo a direção aplicável e a categorização dos hosts com os quais seu aplicativo irá se comunicar, você será capaz de escolher os recursos corretos para seu aplicativo.

Determinados recursos relacionados a redes devem estar habilitados no manifesto do aplicativo para que o aplicativo receba o acesso à rede. Esses recursos são definidos como os SIDs (identificadores de segurança) que são usados pelo Windows 8 para impor os limites.

Os seguintes recursos de isolamento de rede são definidos:

Termo usado no Visual Studio Descrição

Internet (Cliente)

Fornece acesso de saída à Internet e às redes em locais públicos, como aeroportos e cafeterias. A maioria dos aplicativos que requer acesso à Internet deve usar esse recurso.

Este é o recurso internetClient no manifesto do aplicativo.

Internet (Cliente e Servidor)

Fornece ao aplicativo o acesso de entrada e saída da Internet e das redes em locais públicos, como aeroportos e cafeterias.

Este é o recurso internetClientServer no manifesto do aplicativo.

Redes Privadas (Cliente e Servidor)

Fornece ao aplicativo o acesso à rede de entrada e saída nos locais confiáveis do usuário, como a casa ou o trabalho.

Este é o recurso privateNetworkClientServer no manifesto do aplicativo.

 

Observação  

Os aplicativos da Loja do Windows Phone têm um recurso de rede único que habilita todos os acessos de rede para o aplicativo. O recurso Internet (Cliente e Servidor) permite acesso completo à rede para operações de cliente (acesso de saída) e operações de servidor (acesso de entrada). No entanto, se qualquer um dos recursos de rede (internetClient, internetClientServer ou privateNetworkClientServer) for especificado no arquivo Package.appxmanifest, isso permitirá que um aplicativo da Loja do Windows Phone tenha acesso total à rede para operações de cliente e servidor em tempo de execução.

Enquanto estiver desenvolvendo e testando seu aplicativo da Loja do Windows Phone no Visual Studio, você terá o recurso de rede (Internet (Cliente e Servidor)) quando executar o aplicativo, mesmo que não tenha especificado esse recurso no arquivo manifesto do aplicativo. Quando você publica seu aplicativo, contudo, seu aplicativo não obtém automaticamente o recurso de rede. Certifique-se de que você marcou o recurso Internet (Cliente e Servidor) da página Recursos do Criador de Manifestos se seu aplicativo exigir conectividade de rede.

Outros recursos determinados podem precisar ser habilitados no manifesto do aplicativo para o acesso à rede. Esses recursos são definidos como os GUIDs, que são usados para impor os limites.

Termo usado no Visual Studio Descrição

Autenticação Empresarial

Permite que um aplicativo se conecte a recursos de rede que exigem credenciais de domínio. Esse recurso exigirá que um administrador do domínio habilite a funcionalidade em todos os aplicativos. Um exemplo seria um aplicativo que recupera dados dos servidores Intranet Sharepoint.

Com esse recurso, suas credenciais podem ser usadas para acessar os recursos de rede em uma rede que exige credenciais. Um aplicativo com esse recurso pode representá-lo na rede.

Este recurso não é exigido para permitir que o aplicativo acesse a Internet via proxy de autenticação.

Este é o recurso enterpriseAuthentication no manifesto do aplicativo.

Proximidade

Necessário para a comunicação de proximidade a curta distância com os dispositivos próximos ao computador. A proximidade a curta distância pode ser usada para enviar para ou se conectar a um aplicativo em um dispositivo próximo.

Esse recurso permite que um aplicativo acesse a rede para se conectar a um dispositivo próximo, com o consentimento do usuário para enviar ou aceitar um convite.

Este é o recurso proximity no manifesto do aplicativo.

Certificados Compartilhados do Usuário

Esse recurso permite que seu aplicativo acesse certificados de software e hardware, como certificados de cartão inteligente. Quando esse recurso é invocado no tempo de execução, o usuário deve agir, inserindo uma cartão ou selecionando um certificado.

Com esse recurso, os certificados de software e de hardware ou um cartão inteligente são usados para a identificação no aplicativo. Ele pode ser usado pelo seu empregador, banco ou serviços governamentais para identificação.

Este é o recurso sharedUserCertificates no manifesto do aplicativo.

 

Determinados recursos de dispositivo relacionados ao acesso ao dispositivo também podem precisar ser habilitados no manifesto do aplicativo para que o acesso à rede funcione conforme o esperado. Esses recursos de dispositivo são definidos como os GUIDs, que são usados pelo sistema para impor os limites.

Termo usado no Visual Studio Descrição

Webcam

Fornece acesso a um feed de vídeo da webcam.

Esse recurso é necessário quando o aplicativo pretende compartilhar um feed de vídeo da webcam com um computador remoto na rede.

Este é o recurso webcam no manifesto do aplicativo.

 

É importante que você compreenda os recursos exigidos pelo aplicativo. A tabela a seguir lista algumas operações comuns e os recursos necessários.

Recursos necessários

Aplicativo Descrição

Um cliente Web que consome apenas conteúdo. Deve incluir aplicativos que carreguem HTML de um site que usa sindicalização RSS ou o protocolo AtomPub.

internetClient

Um aplicativo de rede social. Inclui um aplicativo que consome e produz conteúdo em um site de rede social.

internetClient

Um aplicativo ponto a ponto (p2p). Inclui um aplicativo que fornece acesso a mensagens instantâneas ou chat.

internetClientServer

Um aplicativo para compartilhamento em uma rede doméstica ou corporativa. Inclui um aplicativo que acessa conteúdo de mídia ou de NAS (armazenamento anexado à rede).

privateNetworkClientServer

Uma linha de aplicativos de negócios na residência ou na empresa. Inclui um aplicativo que age como um cliente HTTP ou que usa soquetes ou WebSockets.

privateNetworkClientServer

Um aplicativo de produtividade com recursos de rede na residência ou na empresa. Inclui um aplicativo de produtividade que acessa recursos de rede.

privateNetworkClientServer

Um aplicativo de jogos que exige acesso à rede.

internetClient

Um jogo multijogador da Internet que não faz associação.

internetClient

Um jogo multijogador com pessoas muito próximas.

proximity

Um aplicativo de jogo multijogador que descobre jogadores com descoberta multicast ou usando multicast.

internetClientServer

Um aplicativo de jogo multijogador que usa a rede doméstica ou corporativa. Incluir um aplicativo que descobre jogadores com descoberta multicast ou é descoberto com o uso de multicast.

privateNetworkClientServer

Um aplicativo de difusão. Inclui um aplicativo que recebe difusões de rádio pela Internet.

internetClient

 

Isolamento de rede e limites de rede

Para que o Windows 8.1 imponha o isolamento de rede, o sistema precisa descobrir e determinar os limites de rede. O Windows 8.1 executa esse descoberta de uma forma dinâmica. O sistema investiga a rede para descobrir os endereços nas interfaces de rede do computador local e quaisquer endereços às quais as interfaces estão associadas para determinar a presença de gateways ou endereços IP que agem como um ponto de acesso para a Internet e dela. O seguinte será descoberto:

  • Endereços locais e subredes usadas por uma rede doméstica ou de trabalho.
  • Gateways de Internet e proxies para a Internet.

Típicos endereços e subredes IPv4 locais descobertas em casa ou no trabalho incluem os seguintes intervalos IPv4 privados:

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

Típicos endereços IPv6 locais e subredes descobertas em casa ou no trabalho incluem os seguintes intervalos IPv6 privados:

  • Uma subrede IPv6 associada ao endereço IPV6.
  • Endereços de link local IPv6 (fe80::/10).
  • Os endereços de encapsulamento IPv6 usados para as tecnologias de transição (por exemplo, 6to4 e ISATAP), excluindo o intervalo de endereços IPv6 usado pelo Teredo (2001::/32).

Quando um usuário conecta pela primeira vez seu computador a uma rede, uma rede LAN Wireless (Wi-Fi) em sua residência, ele tem a opção de habilitar o compartilhamento na rede. Esta decisão é usada pelo Windows para categorizar as redes como confiáveis ou não confiáveis.

Um ponto de extremidade da rede é considerado parte da Rede Residencial/Comercial se alguma das condições abaixo for atendida:

  • Faz parte da sub-rede local de uma rede confiável, conforme indicado pelo usuário. Por exemplo, os usuários residenciais geralmente sinalizam a rede residencial como Confiável. Os computadores da sub-rede local serão designados como parte da Rede doméstica/corporativa.
  • Um computador está em uma rede e é autenticado para um controlador de domínio. Os pontos de extremidade da rede na sub-rede local são considerados privados. Os pontos de extremidade da rede no espaço de endereço da Intranet são considerados privados.
  • O computador está configurado para DirectAccess e o ponto de extremidade da rede faz parte do espaço de endereço da Intranet.

O espaço de endereço da Intranet é composto de sites e sub-redes do Active Directory e está configurado para isolamento de rede do Windows especificamente com o uso de Diretiva de Grupo. Computadores reunidos por domínio consultarão essa informação no Active Directory e na Diretiva de Grupo.

Todos os outros pontos de extremidade da rede que não atendem aos critérios estabelecidos anteriormente são considerados pontos de extremidade da rede na Internet.

Para saber mais sobre controles de Administrador para isolamento de rede, veja Isolando aplicativos da Windows Store na sua rede

Isolamento de rede e imposição

Quando um aplicativo tenta uma solicitação de saída iniciada pelo cliente (uma solicitação HTTP da web para www.contoso.com, por exemplo), o sistema realiza uma verificação nos recursos habilitados para o aplicativo em seu manifesto e toma a decisão de permitir ou bloquear a solicitação de saída iniciada pelo cliente para o host específico (www.contoso.com, por exemplo). Se a solicitação de saída iniciada pelo cliente for permitida, as respostas do servidor para as solicitações de saída iniciadas pelo cliente também serão permitidas.

Quando um aplicativo tenta ouvir as solicitações de entrada não solicitadas, o sistema verifica os recursos definidos para o aplicativo no manifesto e toma uma decisão para permitir ou bloquear a manifestação de entrada não solicitada para remover um endereço IP. Um aplicativo deve ter o recurso InterentClientServer ou privateNetworkClientServer habilitado para poder ouvir as solicitações de entrada não solicitadas. Quando pelo menos um desses recursos está habilitado, o aplicativo tem permissão para ouvir em uma ou várias portas as solicitações de entrada não solicitadas no tipo de rede especificado. Cada tentativa de solicitação de entrada não solicitada é verificada para determinar se uma solicitação de entrada não solicitada de um endereço IP específico de origem remota é permitida. O Windows determina se a solicitação de entrada não solicitada vem de um endereço IP de casa\trabalho ou da Internet e se concede ou nega o acesso dependendo dos recursos habilitados e do endereço remoto específico.

O isolamento de rede está totalmente integrado a todos os componentes proximity. Quando o recurso proximity está habilitado no manisfesto do aplicativo, não é preciso ter outro recurso de rede habilitado. O usuário ainda deve consentir com o envio ou a aceitação de um convite do dispositivo proximity para permitir a comunicação entre o dispositivo proximity e o computador local.

Isolamento de rede e loopback

Os endereços de loopback IP e a interface de loopback foram usados de forma tradicional para a comunicação entre aplicativos diferentes pela rede, assim como para a comunicação entre processos em diversos aplicativos de um computador local.

As comunicações de rede usando um endereço de loopback de IP normalmente não podem ser usadas para interprocessar a comunicação (entre dois aplicativos diferentes), pois isso é restrito pelo isolamento de rede. A comunicação de rede que usa um endereço de loopback IP é permitida em um aplicativo no mesmo processo com a finalidade de comunicação

Para saber mais sobre como permitir que o desenvolvedor acesse os endereços de loopback IP entre aplicativos para fins de depuração, veja o tópico Como habilitar o loopback e depurar o isolamento de rede.

Transferência em segundo plano e notificações do sistema

As classes BackgroundDownloader e BackgroundUploader no namespace Windows.Networking.BackgroundTransferdo Windows 8.1, Windows Phone 8.1 e do Windows Server 2012 R2 oferecem suporte de opções para o usuário receber notificações de bloco e do sistema quando uma transferência for concluída com êxito ou não for concluída.

Para que o seu aplicativo usando Windows.Networking.BackgroundTransfer se comunique por meio de uma notificação do sistema, você deve declarar que ele é Toast capable no respectivo arquivo de manifesto. Essa configuração não está na seção Capabilities com as configurações de isolamento de rede. A configuração Toast capable está localizada na seção Notificações da guia Aplicativo. Defina a opção Toast capable como "Sim" para o aplicativo receber notificações do sistema.

Se Toast capable não estiver ativado no manifesto do aplicativo, então todas as configurações do sistema no namespace do Windows.Networking.BackgroundTransfer serão ignoradas silenciosamente e nenhuma notificação do sistema será recebida pelo aplicativo.

Observação  Os usuários podem ativar ou desativar manualmente as notificações do sistema do aplicativo a qualquer momento.

 

Para obter mais informações sobre as notificações do sistema, consulte Enviando notificações do sistema e Como optar por notificações do sistema.

Tópicos relacionados

Outros recursos

Declarações de recursos do aplicativo

Manifesto do pacote de aplicativo

Capability

DeviceCapability

Como habilitar o loopback e depurar o isolamento da rede

Como optar por notificações do sistema

Enviando notificações do sistema

Solucionando problemas e depurando conexões de rede

Referência

HttpClient

IXMLHTTPRequest2

System.Net.Http

Windows.Networking.BackgroundTransfer

Windows.Networking.Sockets

Windows.Web.AtomPub

Windows.Web.Http

Windows.Web.Http.HttpClient

Windows.Web.Syndication

Exemplos

Exemplo de HttpClient

Exemplo do StreamSocket