Come impostare le funzionalità di rete (HTML)
[ Questo articolo è rivolto agli sviluppatori per Windows 8.x e Windows Phone 8.x che realizzano app di Windows Runtime. Gli sviluppatori che usano Windows 10 possono vedere Documentazione aggiornata ]
Questo argomento spiega il concetto di isolamento di rete e illustra come impostare le funzionalità di rete per ottenere il controllo completo dell'accesso di rete per un'app di Windows Runtime. Le funzionalità di rete fanno sì che le app di Windows Runtime abbiano accesso alle risorse di rete necessarie e che siano fornite all'utente finale previsioni dettagliate sui livelli di accesso. Con le informazioni di questo argomento sarai in grado di configurare la tua app di Windows Runtime in modo che si colleghi correttamente alle risorse di rete. L'isolamento di rete assicura che le app di Windows Runtime abbiano accesso a risorse di rete solo dopo aver richiesto specificamente la funzionalità corretta.
Cosa sapere
Tecnologie
Windows.Networking.BackgroundTransfer
Abilita operazioni avanzate di download e caricamento.
-
Consente la comunicazione in rete mediante socket e WebSocket.
-
Abilita l'accesso a risorse Web mediante il protocollo AtomPub.
-
Offre una moderna API client HTTP per la connessione a servizi Web.
-
Gestisce i feed di diffusione.
-
Abilita la connessione a servizi Web mediante un client Web (solo C#/VB).
Prerequisiti
- Le informazioni seguenti si applicano a qualsiasi app di Windows Runtime connessa o in grado di riconoscere la rete che deve stabilire connessioni di rete. Riguardano le app scritte in JavaScript e le app scritte con .NET Framework 4.5 in C#, VB.NET e C++.
Elenco di controllo per l'isolamento della rete
Usa questo elenco di controllo per assicurarti che l'isolamento della rete sia configurato per la tua app.
- Determina la direzione dell'accesso alla rete necessaria nell'app. Può trattarsi di richieste inizializzate sul lato client in uscita o di richieste non sollecitate in entrata. In alternativa può trattarsi di una combinazione di entrambi questi tipi di richieste di rete.
- Determina il tipo di risorse di rete con le quali comunicherà l'app. In alcuni casi, un'app potrebbe dover comunicare con risorse attendibili su una rete domestica o aziendale. Potrebbe anche essere necessario comunicare con le risorse su Internet oppure accedere a entrambi i tipi di risorse di rete.
- Configura le funzionalità di isolamento della rete minime necessarie nel manifesto dell'app. Queste funzionalità in genere vengono configurate in Microsoft Visual Studio 2013 durante lo sviluppo dell'app.
- Distribuisci ed esegui la tua app per testarla mediante l'uso di strumenti di isolamento della rete forniti per la risoluzione dei problemi.
Altre informazioni sull'isolamento della rete
Non tutte le app richiedono l'accesso alla rete, tuttavia per le app che lo richiedono, Windows 8.1 offre diversi livelli di accesso alla rete che possono essere abilitati selezionando le funzionalità appropriate.
L'isolamento della rete ti consente di definire l'ambito di accesso alla rete necessario per ogni app. Le richieste di accesso alla rete sono divise in due categorie:
Richieste inizializzate sul lato client in uscita
L'app agisce come il client e avvia l'accesso alla rete mediante l'invio di una richiesta di rete iniziale a un computer remoto, in genere un server. L'app client invia una o più richieste al server il quale restituisce una o più risposte all'app client. Tutto il traffico da un'app client Web a un server Web potrebbe trovarsi in questa categoria.Richieste non sollecitate in entrata
L'app agisce come un server di rete e ascolta le richieste di rete in entrata da un computer remoto. Il computer remoto avvia l'accesso alla rete mediante l'invio di una richiesta iniziale all'app che agisce come server. Il computer remoto invia una o più richieste all'app che restituisce una o più risposte al computer remoto. Un'app che funziona come un server multimediale potrebbe trovarsi in questa categoria.
Un'app con un ambito non definito non può accedere al tipo di connessione di rete specificato. L'impostazione e l'applicazione di un isolamento della rete garantisce che se un'app viene compromessa, potrà accedere solo alle reti in cui l'app ha concesso in modo esplicito l'accesso. Questa operazione riduce in modo significativo l'ambito dell'impatto in altre applicazioni e nel sistema.
L'isolamento della rete influisce sulle proprietà e sui metodi negli spazi dei nomi seguenti che provano ad accedere alla rete.
- Windows.Networking.BackgroundTransfer
- Windows.Networking.Sockets
- Windows.Web.AtomPub
- Windows.Web.Http
- Windows.Web.Syndication
- System.Net.Http
In Windows viene applicato attivamente l'isolamento rete. Una chiamata a un metodo o qualsiasi accesso a una proprietà in questi spazi dei nomi che risulti nell'accesso alla rete potrebbe non riuscire a causa dell'isolamento della rete se una funzionalità di rete appropriata non è stata abilitata. Ciò include anche le classi negli altri spazi dei nomi che chiamano i metodi o accedono alle proprietà nei nomi degli spazi seguenti.
Le funzionalità di rete per un'app vengono configurate nel manifesto dell'app quando viene creata. Le funzionalità di rete vengono in genere aggiunte mediante l'uso di Visual Studio quando si sviluppa l'app. Le funzionalità di rete potrebbero essere impostate manualmente nel file manifesto dell'app con un editor di testo.
Isolamento della rete e funzionalità
L'isolamento della rete fa parte del modello di sicurezza per le applicazioni usato da Windows 8. In Windows vengono individuati attivamente i limiti della rete e vengono applicate le restrizioni di accesso alla rete per l'isolamento della rete. Di seguito sono riportati i limiti della rete che il sistema cerca:
Rete aziendale/domestica
Si tratta della rete locale domestica o aziendale. È composta da subnet locali alle quali il computer è connesso e da proxy locali configurati come parte della rete. Questo limite non include i proxy Internet. In un ambiente di dominio, include gli intervalli definiti dai siti di Active Directory e dalle subnet.Internet
Internet, esclusa la rete domestica o aziendale. È composta da qualsiasi proxy che consente l'accesso a Internet. Qualsiasi accesso alla rete che non fa parte della tua Rete aziendale/domestica viene considerata Internet.
Windows 8 classifica tutti gli host di rete remoti in una di queste due categorie. Comprendendo la direzione applicabile e la classificazione degli host con cui comunicherà la tua app, potrai scegliere le funzionalità appropriate per l'app.
Determinate funzionalità relative alla rete devono essere abilitate nel manifesto dell'app in modo che all'app venga concesso l'accesso alla rete. Queste funzionalità sono definite come ID di sicurezza (SID) e vengono usate da Windows 8 per applicare i limiti.
Le seguenti funzionalità di isolamento della rete sono definite:
Termine usato in Visual Studio | Descrizione |
---|---|
Internet (Client) |
Fornisce l'accesso in uscita a Internet e alle reti in luoghi pubblici, come gli aeroporti e i bar. La maggior parte delle app che richiedono accesso a Internet devono usare questa funzionalità. Corrisponde alla funzionalità internetClient nel manifesto dell'app. |
Internet (Client & Server) |
Fornisce l'accesso in entrata delle app da Internet e dalle reti in luoghi pubblici, come gli aeroporti e i bar. Corrisponde alla funzionalità internetClientServer nel manifesto dell'app. |
Private Networks (Client & Server) |
Fornisce l'accesso in entrata e in uscita dell'app in luoghi attendibili, ad esempio a casa o in azienda. Corrisponde alla funzionalità privateNetworkClientServer nel manifesto dell'app. |
Nota
Le app di Windows Phone Store sono provviste di una singola funzionalità di rete che consente all'app l'accesso a tutti i tipi di rete. La funzionalità Internet (client e server) consente l'accesso alla rete sia per operazioni client (accesso in uscita) sia per operazioni server (accesso in entrata). Tuttavia, se una o più delle funzionalità di rete (internetClient, internetClientServer o privateNetworkClientServer) sono specificate nel file Package.appxmanifest, un'app di Windows Phone Store disporrà dell'accesso completo alla rete per operazioni sia client sia server in fase di esecuzione.
Durante lo sviluppo e il test dell'app Windows Phone Store in Visual Studio, puoi usare la funzionalità di rete (Internet (client e server)) quando esegui l'app, anche se non hai specificato questa funzionalità nel file manifesto dell'app. Tuttavia, quando pubblichi l'app, questa non dispone automaticamente della funzionalità di rete. Accertati di selezionare la funzionalità Internet (client e server) nella pagina Funzionalità di Progettazione manifesto, se l'app deve disporre della connettività di rete.
Ad altre determinate funzionalità potrebbero essere abilitate per l'accesso alla rete nel manifesto dell'app. Queste funzionalità sono definite come GUID e vengono usate per applicare i limiti.
Termine usato in Visual Studio | Descrizione |
---|---|
Enterprise Authentication |
Consente a un'app di connettersi alle risorse di rete che richiedono credenziali di dominio. Questa funzionalità richiede un amministratore di dominio per abilitare la funzionalità per tutte le app. Un esempio può essere un'app che recupera dati da server Sharepoint in una Intranet. Grazie a questa funzionalità puoi usare le tue credenziali per accedere alle risorse di rete in una rete che richiede le credenziali. Questa funzionalità dell'app ti rappresenta in rete. Questa funzionalità non è obbligatoria per consentire a un'app l'accesso a Internet mediante proxy di autenticazione. Corrisponde alla funzionalità enterpriseAuthentication nel manifesto dell'app. |
Proximity |
Richiesta per la comunicazione NFC con dispositivi in prossimità del computer. La prossimità near-field potrebbe essere usata per l'invio o per la connessione con un'applicazione su un dispositivo in prossimità. Questa funzionalità consente a un'app di accedere alla rete in modo da connettersi a un dispositivo in prossimità e, con il consenso dell'utente, di inviare o accettare un invito. Corrisponde alla funzionalità proximity nel manifesto dell'app. |
Certificati utente condivisi |
Questa funzionalità consente a un'app di accedere a certificati software e hardware, ad esempio a certificati smart card. Quando si richiama questa funzionalità durante il runtime, l'utente deve intraprendere un'azione, ad esempio inserire la scheda o selezionare un certificato. Grazie a questa funzionalità, i tuoi certificati software e hardware o una smart card vengono usati per l'identificazione nell'app. Questa funzionalità potrebbe essere usata dal tuo datore di lavoro, dalla banca o dagli uffici pubblici per l'identificazione. Corrisponde alla funzionalità sharedUserCertificates nel manifesto dell'app. |
Determinate funzionalità di dispositivo relative all'accesso potrebbero anche essere abilitate nel manifesto dell'app per far funzionare l'accesso alla rete come previsto. Queste funzionalità di dispositivo sono definite come GUID e vengono usate dal sistema per applicare i limiti.
Termine usato in Visual Studio | Descrizione |
---|---|
Webcam |
Fornisce l'accesso alla trasmissione video della webcam. Questa funzionalità è necessaria se l'app vuole condividere una trasmissione video della webcam con un computer remoto nella rete. Corrisponde alla funzionalità webcam nel manifesto dell'app. |
È importante che tu capisca quali funzionalità sono necessarie per la tua applicazione. La tabella seguente contiene un elenco di alcune operazioni comuni e quali funzionalità sono necessarie.
Funzionalità necessarie
Applicazione | Descrizione |
---|---|
Client Web che si limita a usare contenuto. Questo include app che caricano HTML da un sito Web e app che usano la diffusione tramite RSS o il protocollo AtomPub. |
internetClient |
App per social network. Questo include un'app che usa e produce contenuto in un sito di social network. |
internetClient |
App peer-to-peer (p2p). Questo include un'app che fornisce l'accesso a messaggistica immediata o chat. |
internetClientServer |
App per la condivisione in una rete domestica o aziendale. Questo include un'app che accede a contenuto su dispositivi di archiviazione collegati alla rete (NAS) o supporti. |
privateNetworkClientServer |
App line-of-business in una rete domestica o aziendale. Questo include un'app che funge da client HTTP oppure usa socket o WebSocket. |
privateNetworkClientServer |
App di produttività con funzionalità di rete in ambiente domestico o aziendale. Questo include un'app di produttività che accede a funzionalità di rete. |
privateNetworkClientServer |
App di gioco che richiede l'accesso alla rete. |
internetClient |
App di gioco multiplayer via Internet che esegue il matchmaking. |
internetClient |
Gioco multiplayer con persone in prossimità. |
proximity |
App di gioco multiplayer che individua i giocatori con individuazione multicast o usa il multicast. |
internetClientServer |
App di gioco multiplayer che usa la rete domestica o aziendale. Questo include un'app che individua i giocatori con individuazione multicast o viene individuata tramite multicast. |
privateNetworkClientServer |
App di broadcasting. Questo include un'app che riceve trasmissioni radio tramite Internet. |
internetClient |
Isolamento e limiti della rete
Per applicare l'isolamento della rete in Windows 8.1, il sistema deve individuare e determinare i limiti della rete. Windows 8.1 esegue questa individuazione in modo dinamico. Il sistema esegue il probe della rete per individuare gli indirizzi nelle interfacce di rete del computer locale e ogni indirizzo delle interfacce associate per determinare la presenza di gateway o indirizzi IP che agiscono come punto di accesso per e da Internet. Verranno individuati:
- Indirizzi e subnet locali usati da una rete aziendale o domestica.
- Gateway e proxy Internet per Internet.
I tipici indirizzi e subnet IPv4 locali individuati in una rete aziendale o domestica includono i seguenti intervalli di indirizzi IPv4 privati:
- 10.0.0.0-10.255.255.255
- 172.16.0.0-172.31.255.255
- 192.168.0.0-192.168.255.255
I tipici indirizzi e subnet IPv6 locali individuati in una rete aziendale o domestica includono i seguenti intervalli di indirizzi IPv6 privati:
- La subnet IPv6 locale associata all'indirizzo IPV6.
- Indirizzi IPv6 locali rispetto al collegamento (fe80::/10).
- Indirizzi di tunnel IPv6 usati per le tecnologie di transizione, ad esempio 6to4 e ISATAP, escludendo l'intervallo di indirizzo IPv6 usato da Teredo (2001::/32).
Quando un utente collega per la prima volta il computer a una rete, una rete WLAN (Wi-Fi) in casa, ha la possibilità di abilitare la condivisione sulla rete. Questa decisione viene usata da Windows per classificare la rete come attendibile o non attendibile.
Un endpoint di rete viene considerato parte della rete aziendale/domestica se viene soddisfatta una delle condizioni seguenti:
- Fa parte della subnet locale di una rete attendibile, come indicato dall'utente. Ad esempio, gli utenti in genere contrassegnano la rete domestica come attendibile. I computer della subnet locale verranno designati come parte della Rete aziendale/domestica.
- Un computer è collegato a una rete ed è autenticato in un controller di dominio. Gli endpoint di rete all'interno della subnet locale sono considerati privati. Gli endpoint di rete all'interno dello spazio indirizzi Intranet sono considerati privati.
- Il computer è configurato per DirectAccess e l'endpoint di rete fa parte dello spazio indirizzi Intranet.
Lo spazio indirizzi Intranet è composto da siti e subnet configurati di Active Directory ed è configurato per l'isolamento di rete di Windows specificamente mediante Criteri di gruppo. I computer uniti al dominio richiederanno questa informazione ad Active Directory e Criteri di gruppo.
Tutti gli altri endpoint di rete che non soddisfano i criteri indicati in precedenza vengono considerati endpoint di rete su Internet.
Per altre informazioni sui controlli dell'amministratore per l'isolamento di rete, vedi l'argomento sull'isolamento di app di Windows Store nella rete
Isolamento della rete e imposizione
Quando un'app prova a effettuare una richiesta in uscita inizializzata sul lato client (una richiesta Web HTTP a www.contoso.com, ad esempio), il sistema eseguirà un controllo sulle funzionalità abilitate per l'app nel relativo manifesto e stabilirà se consentire o bloccare la richiesta all'host specifico (www.contoso.com, ad esempio). Se la richiesta è consentita, verranno consentite anche le relative risposte dal server.
Quando un'app prova ad ascoltare le richieste non sollecitate in entrata, il sistema eseguirà un controllo nelle funzionalità impostate per l'app nel suo manifesto e deciderà se permettere o bloccare la richiesta non sollecitata in entrata da un indirizzo IP remoto. Un'app deve avere la funzionalità InterentClientServer o privateNetworkClientServer abilitata per ascoltare le richieste non sollecitate in entrata. Se almeno una di queste funzionalità viene abilitata, in una o più porte l'app potrà ascoltare le richieste non sollecitate in entrata in un tipo di rete specificato. Ogni tentativo di richiesta non sollecitata in entrata viene controllata per determinare se una richiesta non sollecitata in entrata da un indirizzo IP remoto specifico è consentita. Windows determina se la richiesta non sollecitata in entrata proviene da un indirizzo IP aziendale/domestico in entrata o da Internet e permette o nega l'accesso in base alle funzionalità abilitate e all'indirizzo remoto specifico.
L'isolamento della rete è completamente integrato con i componenti di prossimità. Quando la funzionalità di prossimità è abilitata nel manifesto dell'app, non è necessario abilitare altre funzionalità di rete. L'utente deve dare il consenso per l'invio o l'accettazione di un invito dal dispositivo di prossimità per consentire la comunicazione tra il dispositivo di prossimità e il computer locale.
Isolamento della rete e loopback
Gli indirizzi di loopback IP e l'interfaccia di loopback vengono usati di solito per la comunicazione tra diverse applicazioni nella rete, nonché per comunicazioni interprocesso all'interno di più applicazioni in un computer locale.
Non è in genere possibile usare comunicazioni di rete basate su un indirizzo di loopback IP per comunicazioni interprocesso, ovvero tra due diverse app, perché sono limitate dall'isolamento della rete. Le comunicazioni di rete basate su un indirizzo di loopback IP sono consentite all'interno di un'app nell'ambito di uno stesso processo a scopo di comunicazione.
Per altre informazioni sull'abilitazione dell'accesso dello sviluppatore agli indirizzi di loopback IP tra diverse app a scopo di debug, vedi Come abilitare il loopback ed eseguire il debug dell'isolamento della rete.
Notifiche di tipo avviso popup e trasferimenti in background
Le classi BackgroundDownloader e BackgroundUploader nello spazio dei nomi Windows.Networking.BackgroundTransfer di Windows 8.1, Windows Phone 8.1 e Windows Server 2012 R2 supportano alcune opzioni in modo che l'utente possa ricevere notifiche di tipo riquadro e avviso popup quando un trasferimento viene completato correttamente oppure ha esito negativo.
Per un'app che usa Windows.Networking.BackgroundTransfer per comunicare attraverso una notifica di tipo avviso popup, devi dichiarare nel file manifesto dell'app che è impostata l'opzione Popup supportati. Questa opzione non è presente nella sezione Funzionalità con le impostazioni di isolamento della rete. L'opzione Popup supportati è contenuta nella sezione Notifiche della scheda Applicazione. Imposta l'opzione Popup supportati su "Sì" in modo che l'app possa ricevere notifiche di tipo avviso popup.
Se l'opzione Popup supportati non è abilitata nel manifesto dell'app, tutte le impostazioni relative agli avvisi popup nello spazio dei nomi Windows.Networking.BackgroundTransfer verranno ignorate automaticamente e non verrà ricevuta alcuna notifica di tipo avviso popup dall'app.
Nota Un utente può disabilitare o abilitare manualmente le notifiche di tipo avviso popup per l'app in qualsiasi momento.
Per altre informazioni sulle notifiche di tipo avviso popup, vedi Invio di notifiche di tipo avviso popup e Come accettare esplicitamente le notifiche di tipo avviso popup.
Argomenti correlati
Altre risorse
Dichiarazioni di funzionalità delle app
Manifesto di pacchetto dell'app
Come abilitare il loopback ed eseguire il debug dell'isolamento di rete
Come accettare esplicitamente le notifiche di tipo avviso popup
Invio di notifiche di tipo avviso popup
Risoluzione dei problemi e debug delle connessioni di rete
Riferimento
Windows.Networking.BackgroundTransfer
Esempi