Как настроить возможности сети (HTML)

[ Эта статья адресована разработчикам приложений среды выполнения Windows для Windows 8.x и Windows Phone 8.x. При разработке приложений для Windows 10 см. раздел последняя документация]

В этом разделе описывается концепция сетевой изоляции и способ настройки возможностей сети для осуществления полного контроля доступа к сети для приложения среды выполнения Windows. Возможности сетевого подключения обеспечивают доступ приложений среды выполнения Windows к необходимым сетевым ресурсам, а также предоставляют конечным пользователям точную информацию об ожидаемых уровнях доступа. Понимание этой темы поможет вам надлежащим образом подключить приложение среды выполнения Windows к сетевым ресурсам. Принцип сетевой изоляции заключается в том, что приложениям среды выполнения Windows предоставляется доступ к сетевым ресурсам только после явного запроса соответствующей возможности.

Что необходимо знать

Технологии

  • Windows.Networking.BackgroundTransfer

    Разрешает расширенные возможности скачивания и отправки данных.

  • Windows.Networking.Sockets

    Устанавливает сетевые подключения с использованием сокетов и протоколов WebSocket.

  • Windows.Web.AtomPub

    Обеспечивает доступ к веб-ресурсам с использованием протокола AtomPub.

  • Windows.Web.Http

    Предоставляет современный API HTTP-клиента для подключения к веб-службам.

  • Windows.Web.Syndication

    Управляет каналами синдикации.

  • System.Net.Http

    Разрешает подключение к веб-службам с помощью веб-клиента (только C# или VB).

Необходимые условия

  • Следующая информация применима к любому подключенному или поддерживающему работу в сети приложению среды выполнения Windows, которому необходимо сетевое подключение. Это распространяется на приложения, написанные на JavaScript. Также это распространяется на приложения, написанные с использованием .NET Framework 4.5 на C#, VB.NET и C++.

Контрольный список для сетевой изоляции

Чтобы проверить настройку сетевой изоляции для вашего приложения, используйте следующий контрольный список.

  • Определите направление доступа к сети, необходимое для вашего приложения. Это могут быть либо исходящие запросы, инициированные клиентом, либо нежелательные входящие запросы, либо комбинация обоих типов сетевых запросов.
  • Определите тип сетевых ресурсов, с которыми будет взаимодействовать приложение. Приложению может потребоваться взаимодействовать с доверенными ресурсами в домашней или рабочей сети. Приложению может быть необходимо взаимодействовать с ресурсами в Интернете. Приложению может потребоваться доступ к обоим типам сетевых ресурсов.
  • Настройте необходимый минимум характеристик сетевой изоляции в манифесте приложения. Обычно эти возможности настраивают с помощью Microsoft Visual Studio 2013 во время разработки приложения.
  • Разверните и запустите ваше приложение, чтобы проверить использование средств сетевой изоляции, предоставленных для диагностики.

Дополнительные сведения о сетевой изоляции

Доступ к сети требуется не для всех приложений. Тем не менее приложениям, которым сетевой доступ необходим, Windows 8.1 предоставляет различные уровни доступа к сети, которые обеспечиваются выбором подходящих возможностей.

Сетевая изоляция позволяет определить область требуемого доступа к сети для каждого приложения. Запросы доступа к сети делятся на две категории:

  • Исходящие запросы, инициированные клиентом
    Приложение действует как клиент и инициирует доступ к сети, посылая первоначальный сетевой запрос удаленному компьютеру, обычно серверу. Клиентское приложение посылает серверу один или несколько запросов, а сервер отправляет обратно один или несколько ответов клиентскому приложению. К этой категории относится весь трафик от приложения веб-клиента к веб-серверу.

  • Нежелательные входящие запросы
    Приложение действует как сетевой сервер и ожидает передачи входящих сетевых запросов от удаленного компьютера. Удаленный компьютер инициирует доступ к сети, отправляя первоначальный запрос приложению, действующему как сервер. Удаленный компьютер отправляет один или более запросов приложению, которое отправляет обратно удаленному компьютеру один или более ответов. К этой категории относится приложение, действующее как сервер мультимедиа.

Приложению, для которого область доступа не определена, запрещается доступ к заданному типу сетевого подключения. При компрометации приложения возможность устанавливать и применять сетевую изоляцию обеспечивает приложению доступ только к тем сетям, к которым ему явно предоставлен доступ. Это значительно уменьшает область воздействия на другие приложения и систему.

Сетевая изоляция оказывает влияние на все методы и свойства в следующих пространствах имен, пытающихся получить доступ к сети.

Сетевая изоляция активно используется в Windows. Из-за сетевой изоляции возможны сбои при вызове метода или при обращении к свойству в этих пространствах имен, которые приводят к установлению доступа к сети в том случае, если не была включена соответствующая сетевая характеристика. Также это влияет на классы в других пространствах имен, которые вызывают методы или обращаются к свойствам в вышеперечисленных пространствах имен.

Сетевые характеристики приложения настраиваются в манифесте приложения во время его сборки. Обычно сетевые характеристики добавляются с использованием Visual Studio при разработке приложения. Сетевые характеристики могут быть установлены вручную в файле манифеста приложения с использованием текстового редактора.

Сетевая изоляция и характеристики

Сетевая изоляция является частью модели безопасности приложения, которая используется в Windows 8. Windows активно обнаруживает сетевые границы и применяет ограничения сетевого доступа для сетевой изоляции. Далее перечислены сетевые границы, ожидаемые системой:

  • Домашняя или рабочая сеть
    Это ваша локальная домашняя или рабочая сеть. Она состоит из локальных подсетей, к которым подключен компьютер, и локальных прокси-серверов, настроенных в составе сети. Прокси-серверы Интернета исключены из этой границы. В среде домена она включает в себя диапазоны, определенные узлами Active Directory и подсетями.

  • Интернет
    Интернет, исключая домашнюю или рабочую сети. Она состоит из всех прокси-серверов, предоставляющих доступ к Интернету. Любой доступ к сети, не являющейся частью вашей домашней или рабочей сети, рассматривается как доступ к Интернету.

В Windows 8 все удаленные сетевые узлы входят в одну из двух этих категорий. Поняв применимое направление и классификацию узлов, с которыми будет связываться ваше приложение, вы сможете выбрать для него правильные характеристики.

Чтобы приложению был предоставлен доступ к сети, в манифесте приложения должны быть установлены определенные возможности сетевого подключения. Эти характеристики определены как идентификаторы безопасности (коды SID), которые используются в Windows 8 для обеспечения границ.

Определены следующие характеристики сетевой изоляции:

Термин в Visual Studio Описание

Интернет (клиент)

Предоставляет исходящий доступ к Интернету и сетям в общественных местах, таких как аэропорт или кафе. Программы, которым требуется доступ к Интернету, должны использовать эту характеристику.

В манифесте приложения это характеристика internetClient.

Интернет (клиент и сервер)

Предоставляет приложению входящий и исходящий доступ к сети из Интернета и сетей в общественных местах, таких как аэропорт или кафе.

В манифесте приложения это характеристика internetClientServer.

Частные сети (клиент и сервер)

Предоставляет приложению входящий и исходящий доступ к сети в доверенных местах пользователя, таких как дом или рабочее место.

В манифесте приложения это характеристика privateNetworkClientServer.

 

Примечание  

Универсальное приложение для Windows Phone имеет единственную возможность сетевого подключения, которая обеспечивает для него все типы доступа к сети. Возможность Интернет (клиент и сервер) позволяет выполнить доступ к сети для операций и клиента (исходящий доступ) и сервера (входящий доступ). Но если в файле Package.appxmanifest указана любая из этих возможностей сети (internetClient, internetClientServer или privateNetworkClientServer), приложение Магазина Windows Phone получит полный доступ к сети в процессе выполнения для операций клиента и сервера.

Когда вы разрабатываете и тестируете ваше приложение Магазина Windows Phone в Visual Studio, вы получаете возможность подключения к сети (Интернет [клиент и сервер]), когда запускаете приложение, даже если вы не определили эту возможность в файле манифеста приложения. Однако при публикации ваше приложение не получит возможности подключения к сети автоматически. Убедитесь, что вы установили флажок Интернет (клиент и сервер) на странице Возможности конструктора манифестов, если вашему приложению необходимо сетевое подключение.

Возможно, для доступа к сети в манифесте приложения потребуется задать и другие характеристики. Эти характеристики определены как коды GUID, которые используются для обеспечения границ.

Термин в Visual Studio Описание

Проверка подлинности на уровне предприятия

Позволяет приложению подключаться к сетевым ресурсам, для которых требуются учетные данные домена. Для этой характеристики необходимо, чтобы администратор домена включил такую функциональность для всех приложений. В качестве примера можно привести приложение, которое получает данные с серверов интрасети SharePoint.

С этой характеристикой ваши учетные данные могут быть использованы для доступа к сетевым ресурсам в сети, для которой требуются учетные данные. Приложение с этой характеристикой может выполнять вход в сеть под вашим именем.

Эта характеристика не требуется, если нужно разрешить приложению доступ к Интернету через прокси-сервер, выполняющий проверку подлинности.

В манифесте приложения это характеристика enterpriseAuthentication.

Близкое взаимодействие

Требуется для близкого взаимодействия с устройствами, расположенными недалеко от компьютера. Близкое взаимодействие в ближайшей зоне может быть использовано для отправки или соединения с приложением на находящемся рядом устройстве.

Эта характеристика предоставляет приложению доступ к сети для подключения к расположенному недалеко устройству, если пользователь согласен отправить или принять приглашение.

В манифесте приложения это характеристика proximity.

Общие сертификаты пользователей

Предоставляет приложению доступ к сертификатам программного обеспечения и оборудования (например, сертификатам смарт-карт). Когда эта характеристика вызывается во время выполнения, пользователь должен совершить действие (например, вставить карту или выбрать сертификат).

В приложении с этой характеристикой для идентификации применяются сертификаты программного обеспечения и оборудования или смарт-карта. Эта характеристика может быть использована для идентификации работодателем, банком или государственными службами.

В манифесте приложения это характеристика sharedUserCertificates.

 

Чтобы доступ к сети осуществлялся должным образом, возможно, в манифесте приложения потребуется установить определенные характеристики устройства, связанные с доступом к устройству. Эти характеристики устройств определены как коды GUID, которые используются системой для обеспечения границ.

Термин в Visual Studio Описание

Веб-камера

Предоставляет доступ к видеоканалу веб-камеры.

Эта характеристика необходима, если приложение предназначено для совместного использования видеоканала веб-камеры с удаленным компьютером по сети.

В манифесте приложения это характеристика webcam.

 

Важно понимать, какие характеристики необходимы вашему приложению. В следующей таблице перечислены некоторые стандартные операции и необходимые для них характеристики.

Необходимые характеристики

Приложение Описание

Веб-клиент, который только потребляет содержимое. Имеются в виду приложения, загружающие HTML с веб-сайта, и приложения, использующие синдикацию RSS или протокол AtomPub.

internetClient

Приложение для социальной сети. Имеется в виду приложение, которое потребляет и создает содержимое на веб-сайте социальной сети.

internetClient

Одноранговое приложение (P2P). Имеется в виду приложение, предоставляющее доступ к службе мгновенных сообщений или разговору.

internetClientServer

Приложение для обеспечения общего доступа в домашней или рабочей сети. Имеется в виду приложение, открывающее доступ к содержимому носителей или запоминающих устройств, подключенных к сети (NAS).

privateNetworkClientServer

Бизнес-приложение для домашней или рабочей сети. Имеется в виду приложение, которое служит клиентом HTTP либо использует сокеты или WebSocket.

privateNetworkClientServer

Приложение для повышения производительности с сетевыми функциями для домашней или рабочей сети. Имеется в виду приложение для повышения производительности с доступом к сетевым компонентам.

privateNetworkClientServer

Игровое приложение, требующее доступа к сети.

internetClient

Многопользовательская интернет-игра с подбором игроков.

internetClient

Многопользовательская игра между людьми, находящимися в непосредственной близости друг к другу.

proximity

Многопользовательское игровое приложение, находящее игроков с помощью многоадресного поиска или рассылки.

internetClientServer

Многопользовательское игровое приложение, использующее домашнюю или рабочую сеть. Имеется в виду приложение, которое находит игроков с помощью многоадресного поиска или обнаруживается путем многоадресной рассылки.

privateNetworkClientServer

Широковещательное приложение. Имеется в виду приложение, позволяющее слушать радиопередачи через Интернет.

internetClient

 

Сетевая изоляция и сетевые границы

Чтобы обеспечить сетевую изоляцию в Windows 8.1, системе необходимо обнаружить и определить сетевые границы. В Windows 8.1 обнаружение происходит динамически. Система исследует сеть для обнаружения адресов на сетевых интерфейсах локальных компьютеров и всех адресов, к которым привязаны эти интерфейсы, чтобы установить наличие шлюзов или IP-адресов, действующих как точка входящего и исходящего доступа в Интернет. Будет обнаружена следующая информация:

  • Локальные адреса или подсети, используемые домашней или рабочей сетью.
  • Шлюзы Интернета и прокси-серверы Интернета.

Стандартные локальные IPv4-адреса и подсети, обнаруженные в домашней или рабочей сети, включают следующие диапазоны частных IPv4-адресов:

  • 10.0.0.0–10.255.255.255
  • 172.16.0.0–172.31.255.255
  • 192.168.0.0–192.168.255.255

Стандартные локальные IPv6-адреса и подсети, обнаруженные в домашней или рабочей сети, включают в себе следующие диапазоны IPv6-адресов:

  • Локальная подсеть IPv6 связана с IPV6-адресами.
  • Локальные IPv6-адреса канала (fe80::/10).
  • Туннельные IPv6-адреса, используемые для технологий туннелирования (например, 6to4 и ISATAP), за исключением диапазона IPv6-адресов, используемого Teredo (2001::/32).

Когда пользователь впервые подключает компьютер к беспроводной сети (Wi-Fi) в своем доме, он имеет возможность разрешить общий доступ к сети. Это решение используется Windows для отнесения сети к категории доверенной или недоверенной.

Конечная точка сети считается частью домашней или рабочей сети, если удовлетворены любые из следующих условий.

  • Она входит в локальную подсеть доверенной сети, указанной пользователем. Например, домашние пользователи обычно помечают свою сеть как доверенную. Компьютеры в локальной подсети будут назначены компонентами домашней или рабочей сети.
  • Компьютер находится в сети, и он проходит проверку подлинности контроллером домена. Конечные точки сети в пределах локальной подсети считаются частными. Конечные точки сети в пределах пространства адресов интрасети считаются частными.
  • Компьютер настроен для использования DirectAccess, а конечная точка сети входит в пространство адресов интрасети.

Пространство адресов интрасети состоит из узлов и подсетей Active Directory. При этом оно специально настроено для сетевой изоляции Windows с помощью групповой политики. Компьютеры, входящие в домен, будут запрашивать эту информацию в Active Directory и групповой политике.

Все остальные конечные точки сети, которые не отвечают ранее заявленным критериям, считаются конечными точками сети Интернет.

Дополнительные сведения об элементах управления администратора для сетевой изоляции см. в разделе Изолирование приложений из Магазина Windows в сети.

Применение сетевой изоляции

Когда приложение попытается совершить исходящий запрос, инициированный клиентом (например, веб-запрос HTTP к сайту www.contoso.com), система выполнит проверку характеристик, разрешенных для приложения в его манифесте. Затем она решит, разрешить или заблокировать исходящий запрос, инициированный клиентом, к определенному узлу (например, www.contoso.com). Если исходящий запрос, инициированный клиентом, разрешен, ответы от сервера на исходящие запросы, инициированные клиентом, также разрешены.

Когда приложение пытается прослушивать нежелательные входящие запросы, система выполняет проверку установленных для приложения характеристик в его манифесте и принимает решение разрешить или запретить входящий нежелательный запрос от удаленного IP-адреса. Чтобы приложение имело возможность прослушивать входящие нежелательные запросы, для него должна быть задана характеристика InterentClientServer или privateNetworkClientServer. Если хотя бы одна из этих характеристик задана, приложение может прослушивать один или несколько портов, ожидая получения нежелательных входящих запросов в сети заданного типа. Для каждого входящего нежелательного запроса будет выполнена проверка, чтобы определить, разрешен ли входящий нежелательный запрос от конкретного IP-адреса источника. Windows определяет, отправлен ли входящий нежелательный запрос с домашнего или рабочего IP-адреса либо из Интернета, и разрешает или запрещает доступ в зависимости от установленных характеристик и конкретного удаленного адреса.

Сетевая изоляция полностью интегрирована со всеми бесконтактными компонентами. Если в манифесте приложения установлена характеристика proximity, нет необходимости устанавливать какие-либо другие сетевые характеристики. Пользователь также должен согласиться отправить или принять приглашение от бесконтактного устройства, чтобы разрешить взаимодействие между бесконтактным устройством и локальным компьютером.

Сетевая изоляция и интерфейс замыкания на себя

Петлевые IP-адреса и интерфейс замыкания на себя традиционно использовались для сетевого взаимодействия разных приложений, а также для межпроцессного взаимодействия нескольких приложений на локальном компьютере.

Передача данных по сети с помощью IP-адресов замыкания на себя обычно не может использоваться для межпроцессного взаимодействия (между двумя разными приложениями), так как этому препятствует сетевая изоляция. Сетевое взаимодействие с использованием петлевых IP-адресов разрешено для обеспечения связи в рамках одного приложения и одного процесса.

Дополнительные сведения о предоставлении разработчикам доступа к петлевым IP-адресам приложений в целях отладки см. в разделе о включении замыкания на себя и отладке сетевой изоляции.

Передача в фоновом режиме и всплывающие уведомления

Классы BackgroundDownloader и BackgroundUploader в пространстве имен Windows.Networking.BackgroundTransfer в Windows 8.1, Windows Phone 8.1 и Windows Server 2012 R2 поддерживают возможность получения пользователями уведомлений на плитках и всплывающих уведомлений при успешной или при неудачной передаче.

Чтобы приложение было способно поддерживать всплывающие уведомления с помощью Windows.Networking.BackgroundTransfer, необходимо объявить его как поддерживающее всплывающие уведомления в файле манифеста приложения. Этот параметр находится не в разделе Возможности вместе с параметрами изоляции сети. Параметр С поддержкой всплывающих уведомлений расположен в разделе Уведомления на вкладке Приложение. Установите для параметра С поддержкой всплывающих уведомлений значение "Да", чтобы приложение могло получать всплывающие уведомления.

Если параметр С поддержкой всплывающих уведомлений не включен в манифесте приложения, любые параметры всплывающих уведомлений в пространстве имен Windows.Networking.BackgroundTransfer будут игнорироваться, а приложение не будет получать всплывающие уведомления.

Примечание  Пользователь в любой момент может вручную включить или выключить всплывающие уведомления для приложения.

 

Подробнее о всплывающих уведомлениях см. в разделах Отправка всплывающих уведомлений и Согласие на всплывающие уведомления.

Связанные разделы

Другие ресурсы

Объявление характеристик приложений

Манифест пакета приложения

Capability

DeviceCapability

Как использовать интерфейс замыкания на себя и выполнять отладку сетевой изоляции

Согласие на получение всплывающих уведомлений

Отправка всплывающих уведомлений

Диагностика и отладка сетевых подключений

Ссылки

HttpClient

IXMLHTTPRequest2

System.Net.Http

Windows.Networking.BackgroundTransfer

Windows.Networking.Sockets

Windows.Web.AtomPub

Windows.Web.Http

Windows.Web.Http.HttpClient

Windows.Web.Syndication

Примеры

Пример HttpClient

Пример StreamSocket