So wird’s gemacht: Festlegen von Netzwerkfunktionen (HTML)

[ Dieser Artikel richtet sich an Windows 8.x- und Windows Phone 8.x-Entwickler, die Windows-Runtime-Apps schreiben. Wenn Sie für Windows 10 entwickeln, finden Sie weitere Informationen unter neueste Dokumentation]

In diesem Thema werden das Netzwerkisolationskonzept und das Festlegen von Netzwerkfunktionen zur umfassenden Steuerung des Netzwerkzugriffs für eine Windows-Runtime-App erläutert. Netzwerkfunktionen stellen sicher, dass Windows-Runtime-Apps auf erforderliche Netzwerkressourcen zugreifen können und dem Endbenutzer genaue Angaben in Hinblick auf Zugriffsebenen zur Verfügung stehen. Auf der Grundlage dieses Themas können Sie sicherstellen, dass Ihre Windows-Runtime-App ordnungsgemäß eine Verbindung mit Netzwerkressourcen herstellen kann. Die Netzwerkisolation stellt sicher, dass Windows-Runtime-Apps erst auf Netzwerkressourcen zugreifen können, nachdem explizit die korrekte Funktion angefordert wurde.

Wissenswertes

Technologien

Voraussetzungen

  • Die folgenden Informationen gelten für alle verbundenen oder netzwerkfähigen Windows-Runtime-Apps, die Netzwerkverbindungen erfordern. Dies betrifft in JavaScript geschriebene Apps. Dies betrifft auch mithilfe von .NET Framework 4.5 in C#, VB.NET und C++ geschriebene Apps.

Prüfliste für die Netzwerkisolation

Mit dieser Prüfliste können Sie sicherstellen, dass die Netzwerkisolation für Ihre App konfiguriert ist.

  • Bestimmen Sie die für die App erforderliche Richtung des Netzwerkzugriffs. Dies können ausgehende vom Client initiierte Anforderungen oder eingehende nicht angeforderte Anforderungen sein, oder es kann sich um eine Kombination aus diesen beiden Netzwerkanforderungstypen handeln.
  • Bestimmen Sie den Netzwerkressourcentyp, mit dem diese App kommunizieren wird. Eine App muss möglicherweise mit vertrauenswürdigen Ressourcen in einem Heim- oder Firmennetzwerk kommunizieren. Eine App muss möglicherweise mit Ressourcen im Internet kommunizieren. Eine App erfordert möglicherweise Zugriff auf beide Netzwerkressourcentypen.
  • Konfigurieren Sie die minimal erforderlichen Netzwerkisolationsfunktionen im App-Manifest. Diese Funktionen werden normalerweise beim Entwickeln der App mit Microsoft Visual Studio 2013 konfiguriert.
  • Stellen Sie Ihre App bereit, und führen Sie sie aus, um sie mithilfe der für die Problembehandlung bereitgestellten Netzwerkisolationstools zu testen.

Weitere Informationen zur Netzwerkisolation

Nicht alle Apps müssen auf das Netzwerk zugreifen. Für Apps, die aber Netzwerkzugriff benötigen, stehen unter Windows 8.1 verschiedene Stufen des Netzwerkzugriffs bereit, die durch Auswählen der entsprechenden Funktionen aktiviert werden können.

Mit der Netzwerkisolation können Sie den Umfang des erforderlichen Netzwerkzugriffs für jede App definieren. Netzwerkzugriffsanforderungen werden in zwei Kategorien unterteilt:

  • Ausgehende, vom Client initiierte Anforderungen
    Die App fungiert als Client und initiiert den Netzwerkzugriff durch Senden einer anfänglichen Netzwerkanforderung an einen Remotecomputer – in der Regel an einen Server. Die Client-App sendet eine oder mehrere Anforderungen an den Server, und der Server sendet eine einzelne Antwort oder mehrere Antworten an die Client-App zurück. Der gesamte Datenverkehr von einer Webclient-App zu einem Webserver würde dieser Kategorie angehören.

  • Eingehende, unaufgeforderte Anforderungen
    Die App fungiert als Netzwerkserver und lauscht nach eingehenden Netzwerkanforderungen von einem Remotecomputer. Der Remotecomputer initiiert den Netzwerkzugriff durch Senden einer anfänglichen Anforderung an die App, die als Server fungiert. Der Remotecomputer sendet eine oder mehrere Anforderungen an die App, die eine oder mehrere Antworten an den Remotecomputer zurücksendet. Eine als Medienserver fungierende App würde dieser Kategorie angehören.

Bei einer App mit einem undefinierten Umfang wird der Zugriff auf den angegebenen Netzwerkverbindungstyp verhindert. Durch das Festlegen und Erzwingen der Netzwerkisolation wird sichergestellt, dass eine App im Falle eines Kompromisses nur auf Netzwerke zugreifen kann, für die ihr der Zugriff explizit erteilt wurde. Dadurch werden die Auswirkungen auf andere Anwendungen und auf das System deutlich reduziert.

Die Netzwerkisolation wirkt sich auf alle Methoden und Eigenschaften in den folgenden Namespaces aus, die versuchen, auf das Netzwerk zuzugreifen.

Die Netzwerkisolation wird unter Windows aktiv erzwungen. Beim Aufruf einer Methode oder Zugriff auf eine Eigenschaft in diesen Namespaces, die/der zum Netzwerkzugriff führt, tritt möglicherweise aufgrund der Netzwerkisolation ein Fehler auf, wenn die entsprechende Netzwerkfunktion nicht aktiviert wurde. Klassen in anderen Namespaces, die Methoden aufrufen oder auf Eigenschaften in den oben genannten Namespaces zugreifen, sind davon auch betroffen.

Die Netzwerkfunktionen für eine App werden beim Erstellen der App im App-Manifest konfiguriert. Die Netzwerkfunktionen werden in der Regel beim Entwickeln der App mithilfe von Visual Studio hinzugefügt. Sie können mithilfe eines Text-Editors manuell in der App-Manifestdatei festgelegt werden.

Netzwerkisolation und -funktionen

Die Netzwerkisolation ist Teil des von Windows 8 verwendeten Anwendungssicherheitsmodells. Unter Windows werden die Netzwerkgrenzen aktiv erkannt und Netzwerkzugriffsbeschränkungen für die Netzwerkisolation erzwungen. Das System sucht nach den folgenden Netzwerkgrenzen:

  • Heim-/Firmennetzwerk
    Dies ist ihr lokales Heim- oder Firmennetzwerk. Es besteht aus lokalen Subnetzen, mit denen der Computer verbunden ist, und lokalen Proxys, die als Teil des Netzwerks konfiguriert sind. Internetproxys sind aus dieser Grenze ausgeschlossen. In einer Domänenumgebung sind durch Active Directory-Websites definierte Bereiche sowie Subnetze eingeschlossen.

  • Internet
    Das Internet, ohne das Heim- oder Firmennetzwerk. Es besteht aus allen Proxys, die Internetzugriff bieten. Sämtlicher Netzwerkzugriff, der nicht Teil Ihres Heim-/Firmennetzwerks ist, wird als Internetzugriff interpretiert.

Windows 8 ordnet alle Remotenetzwerkhosts einer dieser beiden Kategorien zu. Wenn Sie die anwendbare Richtung sowie die Einteilung von Hosts durch Ihre App kennen, können Sie die richtigen Funktionen für Ihre App auswählen.

Bestimmte Funktionen in Bezug auf Netzwerke müssen im App-Manifest aktiviert werden, damit der App Netzwerkzugriff erteilt wird. Diese Funktionen sind als Sicherheits-IDs (SIDs) definiert, die von Windows 8 zum Erzwingen der Grenzen verwendet werden.

Die folgenden Netzwerkisolationsfunktionen sind definiert:

In Visual Studio verwendeter Begriff Beschreibung

Internet (Client)

Bietet ausgehenden Zugriff auf das Internet und Netzwerke an öffentlichen Orten wie Flughäfen und Cafés. Diese Funktion sollte von den meisten Apps verwendet werden, die einen Internetzugriff benötigen.

Dies ist die internetClient-Funktion im Appmanifest.

Internet (Client und Server)

Bietet der App ein- und ausgehenden Zugriff aus dem Internet und aus Netzwerken an öffentlichen Orten wie Flughäfen und Cafés.

Dies ist die internetClientServer-Funktion im Appmanifest.

Private Netzwerke (Client und Server)

Bietet der App eingehenden und ausgehenden Netzwerkzugriff an vertrauenswürdigen Orten des Benutzers (z. B. zu Hause und bei der Arbeit).

Dies ist die privateNetworkClientServer-Funktion im Appmanifest.

 

Hinweis  

Windows Phone Store-Apps bieten eine einzelne Netzwerkfunktion, die den gesamten Netzwerkzugriff für die App aktiviert. Die Funktion Internet (Client und Server) ermöglicht sowohl für Clientvorgänge (ausgehender Zugriff) als auch für Servervorgänge (eingehender Zugriff) vollständigen Zugriff auf das Netzwerk. Dabei gilt allerdings: Ist eine der Netzwerkfunktionen (internetClient, internetClientServer oder privateNetworkClientServer) in der Datei „Package.appxmanifest“ festgelegt, hat eine Windows Phone Store-App vollständigen Zugriff auf das Netzwerk – und zwar sowohl für Client- als auch für Servervorgänge zur Laufzeit.

Während Sie Ihre Windows Phone Store-App in Visual Studio entwickeln und testen, erhalten Sie die Netzwerkfunktion (Internet (Client und Server)), wenn Sie die App ausführen, selbst wenn Sie diese Funktion nicht in der App-Manifestdatei festgelegt haben. Wenn Sie die App veröffentlichen, erhält sie jedoch nicht automatisch die Netzwerkfunktion. Stellen Sie sicher, dass Sie die Funktion Internet (Client und Server) auf der Seite Funktionen des Manifest-Designers aktivieren, wenn Sie die Netzwerkverbindung für Ihre App einrichten möchten.

Möglicherweise müssen für den Netzwerkzugriff bestimmte andere Funktionen im App-Manifest aktiviert werden. Diese Funktionen sind als GUIDs definiert, die zum Erzwingen der Grenzen verwendet werden.

In Visual Studio verwendeter Begriff Beschreibung

Unternehmensauthentifizierung

Ermöglicht einer App, eine Verbindung mit Netzwerkressourcen herzustellen, für die Domänenanmeldeinformationen nötig sind. Bei dieser Funktion muss ein Domänenadministrator die Funktionalität für alle Apps aktivieren. Beispielsweise kann es sich dabei um eine App handeln, die Daten von SharePoint-Servern aus dem Intranet abruft.

Mit dieser Funktion können Ihre Anmeldeinformationen für den Zugriff auf Netzwerkressourcen in einem Netzwerk verwendet werden, für das Anmeldeinformationen erforderlich sind. Eine App mit dieser Funktion kann Ihre Identität im Netzwerk annehmen.

Diese Funktion ist für den Internetzugriff einer App mithilfe eines Authentifizierungsproxys nicht erforderlich.

Dies ist die enterpriseAuthentication-Funktion im App-Manifest.

Näherung

Sie ist für die Nahfeldnäherungskommunikation mit Geräten in geringem Abstand zum Computer erforderlich. Die Nahfeldnäherung kann zum Senden an eine Anwendung oder Verbinden mit einer Anwendung auf einem in der Nähe befindlichen Gerät verwendet werden.

Mit dieser Funktion kann eine App auf das Netzwerk zugreifen, um eine Verbindung mit einem Gerät in geringem Abstand herzustellen und mit der Zustimmen des Benutzers eine Einladung zu senden oder anzunehmen.

Dies ist die proximity-Funktion im App-Manifest.

Freigegebene Benutzerzertifikate

Ermöglicht einer App den Zugriff auf Software- und Hardwarezertifikate wie Smartcardzertifikate. Wenn diese Funktion zur Laufzeit aufgerufen wird, muss der Benutzer eine Aktion ausführen (z. B. eine Karte einsetzen oder ein Zertifikat auswählen).

Bei dieser Funktion werden Ihre Software- und Hardwarezertifikate oder eine Smartcard zur Identifikation in der Anwendung verwendet. Diese Funktion kann von Ihrem Arbeitgeber, Ihrer Bank oder Regierungsbehörden zur Identifikation verwendet werden.

Dies ist die sharedUserCertificates-Funktion im App-Manifest.

 

Es müssen möglicherweise auch bestimmte Gerätefunktionen in Bezug auf den Gerätezugriff im App-Manifest aktiviert werden, damit der Netzwerkzugriff wie erwartet erfolgen kann. Diese Gerätefunktionen sind als GUIDs definiert, die vom System zum Erzwingen von Grenzen verwendet werden.

In Visual Studio verwendeter Begriff Beschreibung

Webcam

Bietet Zugriff auf den Videofeed einer Webcam.

Diese Funktion ist erforderlich, wenn von der App der Videofeed einer Webcam über das Netzwerk für einen Remotecomputer freigegeben werden soll.

Dies ist die webcam-Funktion im App-Manifest.

 

Es ist wichtig, dass Sie nachvollziehen können, welche Funktionen für Ihre Anwendung erforderlich sind. In der folgenden Tabelle sind einige allgemeine Vorgänge und die dafür erforderlichen Funktionen aufgeführt.

Erforderliche Funktionen

Anwendung Beschreibung

Ein Webclient, der nur Inhalte verbraucht. Dazu gehören Apps, die HTML aus einer Website laden, und Apps, die die RSS-Veröffentlichung oder das AtomPub-Protokoll verwenden.

internetClient

Eine App für soziale Netzwerke. Dazu gehört eine App, die den Inhalt einer Website eines sozialen Netzwerks verbraucht und produziert.

internetClient

Eine p2p-App (Peer to Peer). Dazu gehört eine App, die Zugriff auf Instant Messenger oder Chat bereitstellt.

internetClientServer

Eine App für die Freigabe in einem Heim- oder Firmennetzwerk. Dazu gehört eine App, die auf Medien und NAS-Inhalte (Network Attached Storage) zugreift.

privateNetworkClientServer

Eine Branchen-App zuhause oder im Büro. Dazu gehört eine App, die als HTTP-Client agiert oder Sockets bzw. WebSockets verwendet.

privateNetworkClientServer

Eine Produktivitäts-App mit Netzwerkfunktionen zuhause oder im Büro. Dazu gehört eine Produktivitäts-App, die auf Netzwerkfunktionen zugreift.

privateNetworkClientServer

Eine Spiele-App, die Netzwerkzugriff erfordert.

internetClient

Eine Mehrspieler-Internetspiele-App für die Spielerstellung.

internetClient

Eine Mehrspielerpartie mit Leuten in der Nähe.

proximity

Eine Mehrspieler-Spiele-App, die Spieler mit Multicast-Erkennung oder mithilfe von Multicast findet.

internetClientServer

Eine Mehrspieler-Spiele-App, die das Heim- oder Firmennetzwerk verwendet. Dazu gehört eine App, die Spieler mit Multicast-Erkennung oder mithilfe von Multicast findet.

privateNetworkClientServer

Eine Sende-App. Dazu gehört eine App, die Radiosendungen über das Internet empfängt.

internetClient

 

Netzwerkisolation und Netzwerkgrenzen

Damit die Netzwerkisolation unter Windows 8.1 erzwungen wird, müssen die Netzwerkgrenzen vom System ermittelt und bestimmt werden. Unter Windows 8.1 erfolgt diese Ermittlung dynamisch. Das System überprüft das Netzwerk, um die Adressen in Netzwerkschnittstellen des lokalen Computers und alle Adressen zu ermitteln, an die die Schnittstellen gebunden sind, um das Vorhandensein von Gateways oder IP-Adressen zu bestimmen, die als Zugriffspunkt in das oder aus dem Internet fungieren. Folgendes wird ermittelt:

  • Von einem Heim- oder Firmennetzwerk verwendete lokale Adressen und Subnetze.
  • Internetgateways und Proxys für das Internet.

Typische in einem Heim- oder Firmennetzwerk ermittelte lokale IPv4-Adressen und -Subnetze umfassen die folgenden privaten IPv4-Adressbereiche:

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

Typische in einem Heim- oder Firmennetzwerk ermittelte lokale IPv6-Adressen und -Subnetze umfassen die folgenden IPv6-Adressbereiche:

  • Das der IPV6-Adresse zugeordnete lokale IPv6-Subnetz.
  • Verbindungslokale IPv6-Adressen (fe80::/10).
  • Für Übertragungstechnologien (z. B. 6to4 und ISATAP) verwendete IPv6-Tunneladressen ohne den von Teredo (2001::/32) verwendeten IPv6-Adressbereich.

Wenn Benutzer zu Hause zum ersten Mal eine Verbindung mit ihrem Computer zu einem lokalen oder drahtlosen Netzwerk (Wi-Fi) herstellen, können Sie entsprechende Freigabefunktionen aktivieren. Aufgrund dieser Einstellung wird das Netzwerk von Windows als vertrauenswürdig oder nicht vertrauenswürdig eingestuft.

Ein Netzwerkendpunkt wird als Teil des Heim-/Firmennetzwerks betrachtet, wenn eine der folgenden Bedingungen erfüllt ist:

  • Der Netzwerkendpunkt ist Teil eines lokalen Subnetzes in dem vertrauenswürdigen Netzwerk, das vom Benutzer festgelegt wurde. Beispielsweise kennzeichnen private Benutzer ihr Heimnetzwerk i. d. R. als vertrauenswürdig. Computer im lokalen Subnetz werden als Teil des Heim-/Firmennetzwerks festgelegt.
  • Ein Computer befindet sich in einem Netzwerk und wird gegenüber einem Domänencontroller authentifiziert. Netzwerkendpunkte im lokalen Subnetz werden als privat eingestuft. Netzwerkendpunkte im Adressbereich des Intranets werden als privat eingestuft.
  • Der Computer ist für DirectAccess konfiguriert, und der Netzwerkendpunkt gehört zum Adressbereich des Intranets.

Der Adressbereich des Intranets besteht aus konfigurierten Active Directory-Standorten und -Subnetzen. Mithilfe einer Gruppenrichtlinie wurde der Adressbereich darüber hinaus explizit für die Windows-Netzwerkisolation konfiguriert. Computer, die einer Domäne angehören, fragen diese Informationen vom Active Directory sowie von der Gruppenrichtlinie ab.

Alle anderen Netzwerkendpunkte, die den genannten Kriterien nicht entsprechen, werden als Netzwerkendpunkte im Internet betrachtet.

Weitere Informationen zu Administrator-Steuerelementen für die Netzwerkisolation finden Sie unter Isolieren von Windows Store-Apps im Netzwerk.

Netzwerkisolation und Erzwingung

Bei einer ausgehenden Anforderung, die durch einen Client initiiert wurde (beispielsweise eine HTTP-Webanforderung an www.contoso.com) überprüft das System, welche Funktionen für die App im Manifest aktiviert wurden. Danach wird entschieden, ob die ausgehende Anforderung für den spezifischen Host (hier: www.contoso.com) durch den Client zugelassen oder blockiert wird. Wenn die ausgehende vom Client initiierte Anforderung zugelassen wird, werden auch Antworten des Servers als Reaktion auf die ausgehenden vom Client initiierten Anforderungen zugelassen.

Wenn eine App nach eingehenden nicht angeforderten Anforderungen lauscht, führt das System eine Überprüfung der für die App in ihrem Manifest festgelegten Funktionen aus und legt fest, ob die eingehende nicht angeforderte Anforderung von einer Remote-IP-Adresse zugelassen oder blockiert wird. Für eine App muss die InterentClientServer- oder privateNetworkClientServer-Funktion aktiviert sein, damit sie nach eingehenden nicht angeforderten Anforderungen lauschen kann. Wenn mindestens eine dieser Funktionen aktiviert ist, kann die App an einem Port oder mehreren Ports nach nicht angeforderten Anforderungen für den angegebenen Netzwerktyp lauschen. Jede eingehende nicht angeforderte Anforderung wird überprüft, um zu bestimmen, ob eine eingehende nicht angeforderte Anforderung von der bestimmten Remotequellen-IP-Adresse zulässig ist. Unter Windows wird bestimmt, ob die eingehende nicht angeforderte Anforderung von einer Heim-\Firmen-IP-Adresse oder aus dem Internet stammt. In Abhängigkeit der aktivierten Funktionen und der speziellen Remoteadresse wird der Zugriff dann zugelassen oder verweigert.

Die Netzwerkisolation ist vollständig in alle Näherungskomponenten integriert. Wenn die Näherungsfunktion in einem App-Manifest aktiviert ist, muss keine weitere Netzwerkfunktion aktiviert werden. Der Benutzer muss dem Senden oder Annehmen einer Einladung vom Näherungsgerät dennoch zustimmen, um die Kommunikation zwischen dem Näherungsgerät und dem lokalen Computer zu ermöglichen.

Netzwerkisolation und Loopback

IP-Loopbackadressen und die Loopback-Schnittstelle werden normalerweise für die Kommunikation zwischen verschiedenen Anwendungen über das Netzwerk sowie für die prozessübergreifende Kommunikation innerhalb unterschiedlicher Anwendungen auf einem lokalen Computer verwendet.

Die Netzwerkkommunikation mit einer IP-Loopbackadresse kann normalerweise nicht für die Kommunikation zwischen Prozessen (zwischen zwei verschiedenen Apps) verwendet werden, da dies durch die Netzwerkisolation einschränkt wurde. Die Netzwerkkommunikation mit einer IP-Loopbackadresse ist innerhalb einer Anwendung im selben Prozess zu Kommunikationszwecken zulässig.

Weitere Informationen zum Aktivieren des Entwicklerzugriffs auf IP-Loopbackadressen zwischen Anwendungen für Debugzwecke finden Sie unter Aktivieren von Loopback und Debuggen der Netzwerkisolation.

Hintergrundübertragung und Popupbenachrichtigungen

Die Klassen BackgroundDownloader und BackgroundUploader im Windows.Networking.BackgroundTransfer-Namespace in Windows 8.1, Windows Phone 8.1 und Windows Server 2012 R2 unterstützen Optionen, mit denen der Benutzer Kachel- und Popupbenachrichtigungen erhalten kann, wenn eine Übertragung erfolgreich abgeschlossen bzw. nicht abgeschlossen wird.

Damit die App mit Windows.Networking.BackgroundTransfer über eine Popupbenachrichtigung kommunizieren kann, müssen Sie sie in der App-Manifestdatei als Toastfähig deklarieren. Diese Einstellung befindet sich nicht zusammen mit den Netzwerkisolationseinstellungen im Abschnitt Capabilities. Die Einstellung Toastfähig befindet sich im Abschnitt Benachrichtigungen der Registerkarte Anwendung. Legen Sie die Option Toastfähig auf "Ja" fest, damit die App Popupbenachrichtigungen empfangen kann.

Wird Toastfähig im App-Manifest nicht aktiviert, werden alle Popupeinstellungen im Windows.Networking.BackgroundTransfer-Namespace stillschweigend ignoriert, und die App empfängt keine Popupbenachrichtigungen.

Hinweis  Benutzer können jederzeit Popupbenachrichtigungen für die App deaktivieren oder aktivieren.

 

Weitere Informationen zu Popupbenachrichtigungen finden Sie unter Senden von Popupbenachrichtigungen sowie unter So wird's gemacht: Abonnieren von Popupbenachrichtigungen.

Verwandte Themen

Weitere Ressourcen

Deklaration der App-Funktionen

App-Paketmanifest

Capability

DeviceCapability

Aktivieren von Loopback und Debuggen der Netzwerkisolation.

Abonnieren von Popupbenachrichtigungen

Senden von Popupbenachrichtigungen

Problembehandlung und Debuggen von Netzwerkverbindungen

Referenz

HttpClient

IXMLHTTPRequest2

System.Net.Http

Windows.Networking.BackgroundTransfer

Windows.Networking.Sockets

Windows.Web.AtomPub

Windows.Web.Http

Windows.Web.Http.HttpClient

Windows.Web.Syndication

Beispiele

Beispiel für "HttpClient"

StreamSocket-Beispiel