Modello di protezione per Windows Server AppFabric

È necessario proteggere le applicazioni di .NET Framework gestite da Windows Server AppFabric per consentire agli utenti di accedere soltanto ai servizi e ai dati per cui dispongono dell'autorizzazione. A tale scopo, è necessario identificare gli utenti, verificarne l'identità e determinare se dispongono delle autorizzazioni per visualizzare le informazioni o per eseguire le attività richieste. È necessario che lo scambio di messaggi tra il client e il server avvenga in un canale sicuro, per proteggere il trasferimento delle informazioni private. Le tecnologie Microsoft che supportano AppFabric forniscono servizi integrati che consentono alle società di connettersi e utilizzare le applicazioni dell'utente in maniera sicura. Non è necessario che gli amministratori di AppFabric gestiscano insiemi multipli di database utenti: tutti i servizi relativi a centinaia di server Intranet possono essere gestiti semplicemente da un unico strumento grafico. L'integrazione delle tecnologie di sicurezza Microsoft con i prodotti che supportano AppFabric consente di assegnare agli utenti l'accesso a tutte le risorse necessarie per l'esecuzione delle applicazioni.

Punti chiave della sicurezza di AppFabric

L'obiettivo principale del modello di sicurezza di AppFabric è fornire alla maggior parte degli utenti di AppFabric un meccanismo semplice ma efficace. L'integrazione con i modelli di sicurezza di Windows, .NET Framework, IIS e SQL Server esistenti consente agli utenti di sfruttare le conoscenze e le capacità disponibili in materia di sicurezza anche nell'utilizzo del modello di sicurezza di AppFabric. Nello specifico, vengono utilizzati i concetti di sicurezza di Windows, .NET Framework, IIS e SQL Server per rendere più efficaci i diversi livelli di sicurezza nella gestione delle applicazioni di WCF e WF. Poiché AppFabric aggiunge esclusivamente miglioramenti secondari a un quadro di sicurezza integrata di Microsoft già consolidato, il modello di sicurezza è già noto agli amministratori che hanno dimestichezza con i concetti relativi alla sicurezza di Microsoft. Ciò comporta un minore costo totale di proprietà a lungo termine per gli utenti di AppFabric. Se si ha già dimestichezza con questi prodotti e tecnologie, è possibile proteggere in modo semplice l'applicazione seguendo le indicazioni fornite nella sezione Sicurezza e protezione.

AppFabric utilizza i seguenti concetti di sicurezza esistenti:

  • Sicurezza di Windows. AppFabric sfrutta i gruppi di Windows e la sicurezza del file system. La solida architettura di sicurezza di Windows viene utilizzata in modo coerente in tutti i componenti di un'applicazione, con l'autenticazione collegata all'accesso controllato alle risorse di AppFabric. Per ulteriori informazioni, vedere Sicurezza di Windows.

  • Sicurezza di .NET Framework. AppFabric sfrutta la sicurezza di Windows Communication Foundation per i servizi WCF e WF. WCF è una piattaforma di programmazione distribuita basata sui messaggi SOAP, perché la sicurezza dei messaggi scambiati tra i client e i servizi è essenziale per la protezione dei dati. WCF offre una piattaforma versatile e interoperabile per lo scambio di messaggi sicuri, basata sull'infrastruttura di sicurezza esistente e sugli standard di sicurezza riconosciuti per i messaggi SOAP. WCF utilizza concetti noti se già si dispone di applicazioni distribuite e sicure, dotate di tecnologie esistenti quali HTTPS, la protezione integrata di Windows o l'utilizzo di nomi utente e password per l'autenticazione degli utenti. Per ulteriori informazioni, vedere Sicurezza di IIS e .NET Framework.

  • Sicurezza di IIS. AppFabric sfrutta un sottoinsieme di funzionalità di sicurezza IIS poiché i servizi sono ospitati in Servizio Attivazione processo Windows e gli strumenti di amministrazione sono visualizzati in Gestione IIS. IIS è strettamente integrato con il sistema operativo Windows per offrire i massimi livelli di sicurezza per applicazioni e dati. IIS si integra nel modello di sicurezza di Windows NT e nei servizi del sistema operativo, ad esempio il file system e la directory. AppFabric sfrutta il concetto di identità del pool di applicazioni quando i servizi di flusso di lavoro di AppFabric hanno necessità di accedere al database di salvataggio permanente in fase di esecuzione. IIS utilizza gli stessi elenchi di controllo di accesso (ACL, Access Control Lists) di Windows NT Server e tutti gli altri servizi di Windows. Poiché IIS utilizza il database utente di Windows NT Server, non è necessario che gli amministratori di AppFabric creino account utente diversi su ciascun server Web ed è sufficiente che gli utenti della Intranet accedano alla rete una sola volta. Per ulteriori informazioni, vedere Sicurezza di IIS e .NET Framework.

  • Sicurezza di SQL Server. AppFabric crea ruoli del database di SQL Server per controllare l'accesso ai database di salvataggio permanente e di monitoraggio. AppFabric utilizza l'autenticazione integrata di Windows per l'accesso ai database di SQL Server. Per accedere ai database di SQL Server, la protezione integrata utilizza l'identità di Windows attuale stabilita in base ai thread di chiamata. Quindi, è possibile eseguire il mapping dell'identità di Windows sui database e le autorizzazioni di SQL Server di AppFabric. Per ulteriori informazioni, vedere Protezione di SQL Server.

Ruoli di sicurezza concettuali di AppFabric

Per comprendere il modello di sicurezza di AppFabric è utile comprendere gli attributi dei tre ruoli di sicurezza di AppFabric. Tali ruoli sono meramente concettuali e non vi saranno entità con tali nomi altrove nel modello di sicurezza. Tuttavia, i ruoli concettuali si manifestano nei gruppi di sicurezza di Windows fisici mappati corrispondentemente e nei ruoli del database di SQL Server. Nella soluzione di sicurezza, è possibile assegnare utenti e autorizzazioni a tali ruoli come segue:

  • Osservatori server applicazioni. Questo ruolo di amministratore fornisce la visibilità completa sui dati di salvataggio permanente e di monitoraggio dell'applicazione. Gli osservatori del server applicazioni possono:

    • Enumerare applicazioni e servizi

    • Visualizzare la configurazione dell'applicazione e dei servizi

    • Visualizzare i dati di monitoraggio

    • Esaminare istanze permanenti

  • Amministratori server applicazioni. Questo ruolo di amministratore fornisce il controllo completo sulla configurazione, sul monitoraggio e sul salvataggio permanente dell'applicazione. Gli amministratori del server applicazioni possono eseguire tutte le attività permesse nel gruppo Osservatori server applicazioni e le attività seguenti:

    • Sospendere, riprendere, terminare, annullare ed eliminare istanze permanenti

    • Creare e rimuovere origini e raccolte di eventi

    • Visualizzare, eliminare e archiviare dati di monitoraggio

  • Utenti server applicazioni. Il ruolo di runtime è utilizzato da IIS durante l'esecuzione per assegnare le identità di tutte le applicazioni host dei propri pool di applicazioni. Ciò fornisce ai servizi contenuti nelle applicazioni l'accesso condiviso ai database di salvataggio permanente e ai servizi di sistema.

Agli utenti di AppFabric, è sufficiente sapere che vi sono tre ruoli concettuali di AppFabric che è possibile utilizzare nella progettazione della propria soluzione di sicurezza. È possibile assegnare gli utenti e le autorizzazioni appropriate come descritto nella presente documentazione ai gruppi e agli account di Windows NT corrispondenti, ai pool di applicazioni IIS e ai ruoli del database e agli account di accesso di SQL Server. Per ulteriori informazioni e un'importante guida alla protezione relativa all'utilizzo dei ruoli di AppFabric, delle relative autorizzazioni e della relativa mappatura ai gruppi di protezione di Windows e ai ruoli del database di SQL Server, vedere Sicurezza di Windows, Sicurezza di IIS e .NET Framework e Protezione di SQL Server.

Ambito della sicurezza di AppFabric

AppFabric utilizza account di sicurezza di Windows, account di accesso e ruoli del database di SQL Server per determinare l'accesso disponibile per un utente o un'applicazione alle risorse di sistema, quali database di salvataggio permanente, dati timer, dati di monitoraggio e file di configurazione. L'accesso a tali risorse si verifica a livello di applicazione e di gestione, le due aree di ambito logico correlare al modello di sicurezza di AppFabric. L'ambito dell'applicazione circonda il processo di esecuzione dei servizi di AppFabric ospitati come applicazioni IIS. L'ambito della gestione è correlato alla gestione di AppFabric dal punto di vista dell'amministrazione. Per comprendere ulteriormente l'utilizzo dei tre ruoli di sicurezza di AppFabric, si esamini il relativo utilizzo nel contesto dell'ambito dell'applicazione e della gestione.

Ambito dell'applicazione

L'ambito dell'applicazione definisce l'esecuzione effettiva dei servizi di .NET Framework configurati in AppFabric e ospitati nello spazio di processo di WAS in IIS. Non si tratta di amministrazione o utilizzo di strumenti, poiché questi ricadono nell'ambito della gestione. I concetti dell'ambito dell'applicazione si applicano al ruolo di sicurezza concettuale Utenti server applicazioni di AppFabric. Questo ruolo viene mappato al gruppo di Windows IIS_IUSRS, un gruppo di sicurezza di Windows utilizzato per l'account di servizio di IIS. Per ulteriori informazioni, vedere Sicurezza di Windows, Sicurezza di IIS e .NET Framework e Protezione di SQL Server.

Ciascuna applicazione viene eseguita all'interno di un pool di applicazioni. Il pool può essere il pool di applicazioni predefinito oppure è possibile creare e configurare il proprio pool di applicazioni (la creazione e la configurazione di un pool di applicazioni è una funzione amministrativa discussa nella sezione "Ambito di gestione" riportato di seguito). Un pool di applicazioni consente di raggruppare le applicazioni e i servizi nello stesso spazio di processi di lavoro per condividere impostazioni di configurazione e altre entità del sistema operativo. Poiché ciascun processo di lavoro opera come istanza separata del file eseguibile del processo di lavoro, W3WP.EXE, il processo di lavoro che supporta un pool di applicazioni è separato dal processo di lavoro che ne supporta un altro. Ciò consente l'isolamento dell'applicazione nel caso in cui venga ospitata un'applicazione nel relativo pool di applicazioni. L'isolamento dell'applicazione consente, nel caso di errore da parte di un'applicazione Web, di non influire sulle applicazioni che vengono eseguite in altri pool di applicazioni.

Un altro vantaggio dell'isolamento dell'applicazione è rappresentato dall'isolamento di sicurezza personalizzato. In questo modo, l'entità di sicurezza configurata del processo di lavoro che ospita il pool di applicazioni (che contiene il servizio di AppFabric.NET Framework) viene utilizzata quando viene effettuato l'accesso a risorse downstream, come ad esempio SQL Server. L'identità predefinita del pool di applicazioni è l'account Network_Service. È possibile assegnare la propria identità dell'account di Windows personalizzata quando il pool di applicazioni viene configurato in IIS. In fase di esecuzione, WAS inoltra i messaggi in ingresso dalla coda del pool di applicazioni al processo di lavoro W3WP.EXE appropriato tramite i binding dell'applicazione Web specificati nel metabase di IIS. In questo modo, AppFabric consente l'attivazione mediante protocolli non HTTP per gli endpoint e i servizi di WCF. IIS rileva in maniera dinamica tutti gli account di Windows dei propri pool di applicazioni e li aggiunge al gruppo di sicurezza di Windows BUILTIN\IIS_IUSRS. Questo significa che se l'utente crea un proprio pool di applicazioni per l'applicazione, IIS aggiunge automaticamente l'identità del pool di applicazioni al gruppo di Windows IIS_IUsers.

L'utilizzo di più pool di applicazioni con diverse identità di sicurezza consente l'isolamento dell'applicazione per quanto concerne l'accesso ai database di salvataggio permanente e di monitoraggio di AppFabric in fase di esecuzione. Per impostazione predefinita, tali database sono totalmente condivisi da tutte le identità di AppFabric autenticate utilizzate dai relativi pool di applicazioni ospitati. Per ottenere un maggiore livello di sicurezza tramite l'isolamento, è possibile assegnare le autorizzazioni in modo più granulare per risorse del database specifiche a identità specifiche mediante pool di applicazioni IIS specifici. È inoltre possibile controllare la sicurezza in fase si esecuzione creando database propri per applicazioni specifiche e verificando che la connessione avvenga verso tali database personalizzati per le identità specifiche. In alternativa, per le applicazioni è possibile isolare un'applicazione dal database di monitoraggio e consentirne l'accesso al database di salvataggio permanente.

L'ambito dell'applicazione si applica anche ai servizi di sistema installati e utilizzati da AppFabric:

  • Servizio Raccolta eventi. Raccoglie gli eventi originati da AppFabric e dalle applicazioni ospitate.

  • Servizio Gestione flussi di lavoro. Elabora i comandi di controllo del flusso di lavoro, attiva le istanze del flusso di lavoro con timer di scadenza e riavvia i servizi del flusso di lavoro abbandonati.

Entrambi i servizi vengono eseguiti come account NTAuthority\LocalService. L'account LocalService dispone delle autorizzazioni per emettere eventi di traccia e di manipolare istanze permanenti (terminarle, sospenderle e riprenderle).

L'aumento dei controlli di sicurezza comporta generalmente una riduzione delle prestazioni. Sebbene l'isolamento dell'applicazione comporta l'aumento delle funzionalità di sicurezza, richiede inoltre un maggiore utilizzo della memoria e delle risorse del processo a causa della presenza di processi multipli. Per risparmiare risorse, si consiglia di isolare le applicazioni mediante il modello appDomain di .NET Framework anziché utilizzare processi separati. Due o più applicazioni possono coesistere in maniera sicura all'interno dello stesso processo con appDomain diversi e rispettare vicendevolmente le memorie virtuali e i dati.

Ambito di gestione

L'ambito di gestione consente di definire l'amministrazione e gli strumenti relativi alla gestione amministrativa delle applicazioni. Non si tratta dell'esecuzione effettiva dei servizi di .NET Framework configurati in AppFabric. Ciò rientra nell'ambito dell'applicazione. I concetti dell'ambito di gestione si applicano ai ruoli concettuali di protezione Amministratori server applicazioni e Osservatori server applicazioni di AppFabric.

L'ambito di gestione è relativo alla gestione di AppFabric e delle tecnologie di supporto dal punto di vista dell'amministrazione e dei servizi di sistema. È possibile eseguire operazioni di gestione prima dell'esecuzione di un'applicazione, ad esempio, la distribuzione e la configurazione di un'applicazione di .NET Framework in AppFabric. È inoltre possibile eseguire operazioni di gestione durante l'esecuzione quando lo stato di un flusso di lavoro è stato reso permanente il passaggio successivo necessita di essere elaborato tramite l'interfaccia utente di AppFabric. Ad esempio, è possibile che sia necessario riprendere un flusso di lavoro sospeso. Le autorizzazioni di sicurezza per la gestione della configurazione e dell'esecuzione dei servizi di .NET Framework configurati in AppFabric si basano sulla partecipazione a gruppi di sicurezza di Windows specifici. L'ambito della gestione si applica anche a Servizio di raccolta eventi e Servizio Gestione flussi di lavoro ma dal punto di vista della gestione e del controllo piuttosto che dal punto di vista dell'applicazione.

I ruoli concettuali di sicurezza Amministratori server applicazioni e Osservatori server applicazioni vengono mappati rispettivamente ai gruppi di sicurezza locali di Windows NT AS_Administrators e AS_Observers. Il gruppo AS_Administrators contiene l'ID servizio (SID, Service ID) di Servizio Gestione flussi di lavoro e di Servizio di raccolta eventi. Al termine della registrazione dei servizi con Gestione controllo servizi, i relativi SID rimangono costanti. Ciò significa che Servizio di raccolta eventi e Servizio Gestione flussi di lavoro saranno membri di AS_Administrators indipendentemente dall'identità con cui vengono eseguiti. Tale identità è generalmente NTAuthority\LocalService. Pertanto, l'utilizzo di SID anziché le identità di servizio garantisce che nessun altro processo o servizio in esecuzione con l'identità NTAuthority\LocalService possa essere membro di AS_Administrators. Per ulteriori informazioni sui ruoli di protezione concettuali di AppFabric e sul relativo utilizzo, vedere Sicurezza di Windows, Sicurezza di IIS e .NET Framework e Protezione di SQL Server.

Ambito di gestione della sicurezza di AppFabric in fase di installazione. Quando i cmdlet di Windows PowerShell creano i database di monitoraggio e salvataggio permanente in fase di installazione, vengono creati i ruolo del database di SQL Server appropriati in base ai corrispondenti ruoli di sicurezza concettuali di AppFabric. Ad esempio, tutti i ruoli creati in SQL Server per AS_Observers sono ruoli di lettura (ruolo MonitoringDbReader per il monitoraggio e System.Activities.DurableInstancing.InstanceStoreObservers per il salvataggio permanente). I ruoli del database di SQL Server definiti per l'account di accesso AS_Administrators includono tutti i ruoli del database collegati all'account di accesso AS_Observers e a ruoli aggiuntivi, per creare e modificare le entità del database dal punto di vista amministrativo.

Per impostazione predefinita, durante il processo di installazione di AppFabric vengono eseguiti alcuni cmdlet di AppFabric. AppFabric crea tutti i gruppi e gli account di sicurezza di Windows locali necessari per l'installazione su un unico server di AppFabric. Se si utilizza AppFabric su più server, sarà necessario creare manualmente i gruppi di dominio di Windows e assegnarli a i gruppi di sicurezza di Windows appropriati affinché il server sia in grado di gestire in remoto l'installazione di AppFabric. In qualità di amministratore, si consiglia di creare gruppi di dominio come manifestazioni fisiche dei ruoli di sicurezza concettuali Amministratori server applicazioni e Osservatori server applicazioni (vale a dire, DOMAIN\MyAppFabricAdmins e DOMAIN\MyAppFabricObservers). È quindi possibile assegnare tali account di dominio ai gruppi LOCAL\AS_Administrators e LOCAL\AS_Observers su tutti i computer di AppFabric nel dominio.

Modello di sicurezza per Script di Windows PowerShell personalizzati e cmdlet di AppFabric

AppFabric non offre un nuovo modello di sicurezza per gli script di Windows PowerShell o per i numerosi cmdlet di Windows PowerShell contenuti nella versione di AppFabric. Come con altri aspetti del modello di sicurezza, AppFabric utilizza i modelli di sicurezza esistenti nella propria tecnologia di supporto. In questo caso, AppFabric utilizza il modello di sicurezza di Windows PowerShell per applicare la sicurezza agli script personalizzati e ai cmdlet di AppFabric già disponibili in pacchetti.

L'esecuzione di script di Windows PowerShell di AppFabric avviene tramite l'identità del relativo processo host. Ciò implica che l'entità di sicurezza dell'utente che esegue il cmdlet venga trasmessa come ID processo. Non è possibile utilizzare la rappresentazione per eseguire il cmdlet in un contesto di sicurezza diverso da quello dell'utente che esegue il processo host.

Anche se per impostazione predefinita è possibile eseguire i comandi di Windows PowerShell in maniera interattiva, l'esecuzione degli script di Windows PowerShell è inizialmente disabilitata per ragioni di sicurezza. È necessario abilitarla tramite il criterio di gruppo Esecuzione script di Windows PowerShell per consentire l'esecuzione degli script dell'utente.

Gli script di Windows PowerShell inclusi in AppFabric sono dotati di firma digitale con un certificato acquisito da un'Autorità di certificazione (CA). La firma di un'entità con un certificato digitale da un'Autorità di certificazione consente di proteggere l'integrità del pacchetto. L'utilizzo dell'hashing unidirezionale e gli algoritmi di crittografia a chiave pubblica, il processo di firma garantisce il rilevamento di eventuali modifiche apportate al pacchetto successivamente alla firma da parte dell'autore, con il conseguente blocco dell'esecuzione dello script. È inoltre possibile utilizzare firme digitali per verificare che l'entità con firma sia stata creata realmente dall'autore. Un'alternativa semplice e più vantaggiosa all'utilizzo di Autorità di certificazione è quella di utilizzare un'Autorità di certificazione locale e Microsoft Certificate Server per generare un certificato autofirmato. È possibile proteggere ulteriormente il certificato utilizzando la crittografia a chiave privata.

securitySicurezzaNota
L'utilizzo di un'Autorità di certificazione locale per la firma di un pacchetto di script di Windows PowerShell è minimo nel relativo criterio di attendibilità. Mentre un pacchetto con firma locale viene considerato attendibile dal sistema locale, ciò non accade se lo si esegue su sistemi esterni.

Gestione dell'identità federativa e SSO (Single Sign-On)

I sistemi di autenticazione federativi sono denominati anche sistemi Web SSO (Single Sign-On). I sistemi federativi operano oltre i limite organizzativi e consentono di connettere processi che utilizzano tecnologie, archiviazione dei dati di identità, approcci di sicurezza e modelli di programmazione diversi. Con ADFS (Active Directory Federation Services), gli utenti di una società possono utilizzare i propri account Active Directory per accedere ai server ospitati da una società diversa. ADFS stabilisce inoltre una relazione di trust tra le due società e garantisce agli utenti finali un'esperienza di accesso unico (SSO) agevole. Consente alle società di condividere le informazioni sull'identità degli utenti in maniera sicura.

Un'applicazione basata su HTTP gestita da AppFabric è per molti aspetti semplicemente un'applicazione IIS. Se si desidera integrare la gestione dell'identità federativa e l'autenticazione Web SSO con l'applicazione in uso, è possibile utilizzare ADFS nello stesso modo in cui lo si utilizzerebbe per un'applicazione IIS. ADFS consente di mappare l'account di accesso accede all'applicazione a un account di dominio, quindi di eseguire l'autenticazione utilizzando tale account di dominio in IIS. 

Poiché .NET Framework 4 utilizza WCF e il relativo modello di sicurezza per la comunicazione tra i servizi gestiti e i relativi client, il modello IIS tradizionale di supporto delle sole applicazioni basate su HTTP viene esteso oltre HTTP. Se si utilizza HTTP senza autenticazione del trasporto o con un'applicazione non HTTP, utilizzare l'interfaccia di programmazione all'interno del servizio per implementare l'elaborazione delle attestazioni di identità. Un'applicazione in grado di riconoscere attestazioni utilizza le attestazioni presenti in un token di sicurezza di ADFS per prendere decisioni relative alle autorizzazioni e offrire un'ulteriore personalizzazione dell'applicazione. Come con ADFS, è necessario comprendere il funzionamento dell'elaborazione delle attestazioni di identità con un'applicazione IIS per integrare l'elaborazione delle attestazioni nell'applicazione in uso.

In questa sezione

Vedere anche

Altre risorse

WF Security Pack CTP

  2011-12-05