Requisiti di sicurezza per l'esecuzione delle soluzioni Office (System 2003)
Aggiornamento: novembre 2007
Si applica a |
---|
Le informazioni contenute in questo argomento riguardano solo i progetti Visual Studio Tools per Office e le versioni di Microsoft Office specificati. Tipo di progetto
Versione Microsoft Office
Per ulteriori informazioni, vedere la classe Funzionalità disponibili in base ai tipi di progetto e applicazione. |
Le personalizzazioni a livello di documento e i componenti aggiuntivi a livello di applicazione includono le funzionalità di sicurezza disponibili in .NET Framework. In questo modo, la soluzione può disporre di una vasta gamma di evidenze su cui basare le decisioni relative all'attendibilità.
Per distribuire ed eseguire una soluzione Microsoft Office è necessario concedere l'attendibilità totale agli assembly nei criteri di sicurezza di ciascun utente finale. Nel caso delle personalizzazioni, se il documento si trova in un percorso di rete anziché nel computer dell'utente, è necessario concedere l'attendibilità totale anche al documento. Per informazioni sull'impostazione di criteri di sicurezza nei computer degli utenti finali, vedere Distribuzione dei criteri di sicurezza.
Le soluzioni Office dispongono di un'ulteriore restrizione di sicurezza personalizzata in base alla quale tipi di evidenze basati su una zona o su tutto il codice non vengono accettati. Di conseguenza, gli assembly disponibili sul computer locale, in rete o in Internet non vengono eseguiti nelle applicazioni di Microsoft Office finché all'assembly non verrà concessa l'autorizzazione, ovvero l'attendibilità, nei criteri di sicurezza.
In Microsoft Office Outlook è inclusa una protezione del modello a oggetti che consente di evitare l'accesso al modello a oggetti di Outlook da parte di codice considerato non attendibile. La protezione del modello a oggetti può inoltre provocare in Outlook la visualizzazione di avvisi all'utente finale, durante l'esecuzione del codice. Per informazioni su come evitare la visualizzazione degli avvisi, vedere Considerazioni specifiche sulla protezione per le soluzioni Office.
Livelli di attendibilità
Le funzionalità di protezione di .NET Framework comprendono i tre livelli di attendibilità seguenti:
Attendibilità totale. Questo livello concede al codice l'autorizzazione per l'esecuzione di qualsiasi azione consentita all'utente corrente. Tutto il codice deve disporre di attendibilità totale per l'esecuzione nelle soluzioni Office.
Attendibilità parziale. Questo livello è costituito da un set di autorizzazioni limitato che concede solo le autorizzazioni specificate. Il codice parzialmente attendibile non verrà eseguito nelle soluzioni Office.
Non attendibile. Questo livello non concede alcuna autorizzazione e pertanto il codice non verrà eseguito.
Se il set di autorizzazioni obbligatorio prevede l'attendibilità totale, nelle soluzioni Office non verranno eseguite estensioni di codice gestito con attendibilità parziale o considerate non attendibili. Per ulteriori informazioni sui set di autorizzazioni, vedere Set di autorizzazioni denominati.
Tipi di evidenza
Le funzionalità di protezione di .NET Framework comprendono i tipi di evidenza seguenti:
Tutto il codice.
Directory dell'applicazione.
Global Assembly Cache (GAC).
Hash.
Editore.
Sito.
Nome sicuro.
URL.
Zona.
Personalizza. (msosec.dll per le soluzioni di Office. Per ulteriori informazioni, vedere Procedura: concedere autorizzazioni per documenti e cartelle di lavoro archiviati in percorsi condivisi (System 2003).
Per ulteriori informazioni, vedere Evidenza.
In Visual Studio è utilizzata l'evidenza URL per concedere l'attendibilità totale ai progetti durante la compilazione. Quando un progetto Visual Studio Tools per Office viene compilato in Visual Studio, quest'ultimo altera i criteri di sicurezza a livello utente per concedere l'attendibilità totale alle posizioni di compilazione dei progetti di Office. Durante l'esecuzione della personalizzazione o del componente aggiuntivo, il caricatore presenta l'URL relativo alla posizione dell'assembly al sistema di criteri, che concede l'attendibilità totale alle posizioni specifiche.
Questo livello di protezione si rivela in genere sufficiente per un computer, ma può costituire un problema in una rete se si utilizza questa evidenza quando si distribuisce la soluzione. Prima della distribuzione, è opportuno assegnare all'assembly una forma di evidenza più sicura. L'utilizzo di una forma di evidenza più sicura è consigliabile per i due motivi seguenti:
Se si concede attendibilità totale a una posizione Web, gli utenti malintenzionati che dispongono di accesso in scrittura a tale posizione possono sostituire l'assembly con il proprio codice e indurre l'utente a eseguirlo.
I criteri predefiniti a livello di computer concedono l'attendibilità parziale a tutti i siti Web ma, poiché è richiesta l'attendibilità totale, l'impostazione di un criterio a livello di utente per concedere l'attendibilità totale a un URL non è sufficiente.
Se si sceglie di utilizzare l'evidenza URL, assicurarsi di impostare i criteri nell'area Intranet del livello di criteri definiti a livello di computer e non a livello di utente. Assicurarsi inoltre di concedere l'attendibilità totale solo alle posizioni in cui possono scrivere unicamente gli utenti attendibili. Per impostare i criteri in modo ottimale è consigliabile utilizzare una combinazione di posizione ed evidenza crittografata sicura, ad esempio un nome sicuro. I nomi sicuri devono essere sempre utilizzati insieme alle informazioni relative alla posizione e pertanto se un'applicazione con nome sicuro viene compromessa, sarà possibile correggerla senza correre rischi.
Per le personalizzazioni a livello di documento, il documento dispone anche di un'evidenza basata sulla posizione che rende più complesso per eventuali utenti malintenzionati modificare lo scopo del codice attendibile creando documenti che utilizzano il codice per scopi non previsti. Se un documento con estensioni di codice gestito non risiede in una posizione completamente attendibile, l'assembly non viene eseguito. Per impostazione predefinita, l'area Risorse del computer viene considerata completamente attendibile, di conseguenza il codice può essere eseguito dai documenti sul computer dell'utente, mentre l'area Internet non è considerata completamente attendibile.
Nei documenti con estensioni di codice gestito non viene utilizzata la protezione delle macro di Office, basata sull'archivio certificati di Office. La protezione delle macro non ha relazione con la protezione degli assembly.
Per informazioni sulla protezione in .NET Framework, vedere Nozioni fondamentali sulla protezione dall’accesso di codice, o più in generale, Protezione in .NET Framework e Cenni preliminari sull'amministrazione dei criteri di protezione.
Cenni preliminari sulla protezione degli assembly
Ubicazione dell'assembly |
Impostazioni predefinite |
Modalità di impostazione |
---|---|---|
Computer di sviluppo |
Quando si compila un progetto Office, viene concessa l'attendibilità totale all'assembly principale sul computer dell'utente e a tutti gli assembly cui viene fatto riferimento con la proprietà Copia localmente impostata su true. |
Non è necessaria alcuna azione da parte dell'utente. |
Percorso di rete condiviso |
Assembly non attendibili |
L'amministratore configura criteri di sicurezza della rete con cui viene concessa l'attendibilità al percorso e l'assembly viene protetto, ad esempio con una firma digitale. Per informazioni, vedere Considerazioni sulla protezione degli assembly. |
Computer dell'utente finale |
Assembly non attendibili |
L'amministratore concede l'attendibilità all'assembly nei criteri di sicurezza dell'utente. Per ulteriori informazioni, vedere Distribuzione dei criteri di sicurezza. |
Cenni preliminari sulla protezione dei documenti
Percorso dei documenti |
Impostazione predefinita |
Modalità di impostazione |
---|---|---|
Computer di sviluppo |
Documenti con attendibilità totale. |
Non è necessaria alcuna azione da parte dell'utente. |
Percorso di rete condiviso |
Documenti non attendibili |
L'amministratore configura criteri di sicurezza della rete con cui viene concessa l'attendibilità al percorso, impostando facoltativamente un criterio per considerare attendibili solo i documenti di Office. Per informazioni, vedere Procedura: concedere autorizzazioni per documenti e cartelle di lavoro archiviati in percorsi condivisi (System 2003). |
Computer dell'utente finale |
Documenti con attendibilità totale. |
Non è necessaria alcuna azione da parte dell'utente. |
Protezione sul computer di sviluppo
Quando, come sviluppatore, si compila un progetto di Office in Visual Studio, per impostazione predefinita il percorso completo dell'assembly, incluso il nome, viene aggiunto ai criteri di sicurezza di .NET Framework a livello utente. L'assembly riceve pertanto l'attendibilità totale. Anche gli assembly a cui viene fatto riferimento presenti nella cartella di output del progetto ricevono l'attendibilità totale al momento della compilazione del progetto.
Se l'impostazione predefinita non viene modificata, Visual Studio Tools per Office verifica i criteri di sicurezza nella cache ogni volta che viene compilata la soluzione. Visual Studio Tools per Office concede l'attendibilità totale agli assembly che non ne dispongono. Ciò consente al progetto di conservare l'attendibilità anche se si rinomina l'assembly o si sposta il progetto in un nuovo percorso.
Se si modifica l'impostazione di attendibilità predefinita, impostando la proprietà Percorso assembly attendibili su false, non verrà concessa alcuna attendibilità totale agli assembly e il codice non sarà eseguito. Per eseguire di nuovo il codice, modificare la proprietà Percorso assembly attendibili su true e ricompilare la soluzione. È possibile inoltre impostare una regola globale che consenta di concedere l'attendibilità totale a tutto il codice in esecuzione dalla cartella Progetti e dalle relative sottocartelle.
Per informazioni su come impostare le opzioni di attendibilità del progetto e su come concedere l'attendibilità totale alle cartelle, vedere Procedura: concedere autorizzazioni a cartelle e assembly (System 2003).
Memorizzazione nella cache dei criteri di sicurezza
I criteri di sicurezza per ogni processo vengono memorizzati nella cache da Common Language Runtime. Visual Studio verifica tale cache quando si compilano i progetti, per verificare che gli assembly abbiano l'attendibilità totale. Se gli assembly hanno l'attendibilità totale già all'avvio di Visual Studio, i criteri non vengono creati durante il processo di compilazione.
Se i criteri di sicurezza correlati al progetto vengono modificati mentre Visual Studio è in esecuzione, la modifica non viene rilevata; se la modifica apportata impedisce che il progetto venga eseguito, l'applicazione genera un'eccezione di protezione poiché Visual Studio non ricrea i criteri per concedere agli assembly l'attendibilità totale. Per consentire a Visual Studio di rilevare le modifiche dei criteri di sicurezza, è necessario chiudere e riaprire il programma.
Soluzioni create con versioni precedenti
A ciascuna versione di Microsoft .NET Framework installata nel computer sono associati dei criteri di sicurezza. Le soluzioni Visual Studio Tools per Office verificano i criteri di sicurezza della versione di .NET Framework per cui sono state create. Pertanto, se una soluzione viene creata utilizzando Visual Studio Tools per Office, versione 2003, vengono sempre verificati i criteri di sicurezza di .NET Framework versione 1.1. Se una soluzione viene creata utilizzando Visual Studio 2005 Tools per Office, vengono sempre verificati i criteri di sicurezza di .NET Framework versione 2.0.
Le soluzioni Visual Studio Tools per Microsoft Office System 3.0 controllano la presenza di .NET Framework versione 3.5, ma le soluzioni per Office 2003 possono essere impostate per utilizzare .NET Framework 2.0. Per ulteriori informazioni, vedere Procedura: modificare la versione di .NET Framework di destinazione.
Progetti creati in una rete
Sebbene sia possibile creare un progetto in un percorso di rete condiviso, non è possibile eseguirlo in rete se non si concede allo stesso l'attendibilità totale a livello di computer. Per impostazione predefinita, Visual Studio Tools per Office concede l'evidenza URL a livello utente. È necessario concedere manualmente l'attendibilità totale all'assembly a livello di computer.
Se si utilizza solo l'evidenza URL per concedere l'attendibilità totale a una posizione di rete, gli utenti malintenzionati che dispongono di accesso in scrittura a tale posizione possono sostituire l'assembly con il proprio codice e indurre l'utente a eseguirlo. Prendere in considerazione la possibilità di utilizzare altre forme di evidenza in aggiunta oppure in sostituzione dell'evidenza URL. Per ulteriori informazioni, vedere Tipi di evidenza in questo argomento.
Protezione per gli utenti finali
I documenti con estensioni di codice gestito possono essere aperti dagli utenti finali come qualsiasi altro documento. Se il documento si trova nel computer dell'utente finale o ha ricevuto l'attendibilità in una condivisione di rete, Word o Excel tentano di caricare e di eseguire l'assembly. Nel caso dei componenti aggiuntivi, questi vengono caricati quando l'utente avvia l'applicazione di Microsoft Office.
L'applicazione di Microsoft Office controlla i criteri di sicurezza e intraprende una delle azioni seguenti:
Se all'assembly e al documento (se applicabile) sono state concesse autorizzazioni in modo esplicito, viene consentita l'esecuzione dell'assembly. Per ulteriori informazioni su come impostare i criteri di sicurezza nei computer degli utenti finali, vedere Distribuzione dei criteri di sicurezza.
Se l'unica evidenza disponibile per determinare le autorizzazioni è basata su una zona o su tutto il codice, il codice non verrà eseguito e l'utente finale riceverà un messaggio di errore in cui viene segnalato che i criteri di sicurezza correnti impediscono l'esecuzione del codice. Per impostare il criterio che consente l'esecuzione del codice, l'utente dovrà contattare l'amministratore.
I criteri di sicurezza predefiniti di Visual Studio Tools per Office non consentono l'esecuzione del codice contenuto nelle personalizzazioni. Per impostazione predefinita, l'area Risorse del computer viene considerata attendibile dai criteri di sicurezza. Tuttavia, i criteri di dominio dell'applicazione per i documenti con estensioni di codice gestito consentono l'esecuzione del codice nell'area Risorse del computer soltanto dopo la concessione esplicita dell'attendibilità. Questo meccanismo, diverso da quello in genere adottato da sviluppatori e utenti finali, garantisce una maggiore protezione del desktop utilizzando impostazioni predefinite. Gli utenti finali, inoltre, non possono modificare le impostazioni di protezione all'interno di Office per consentire l'esecuzione di codice non attendibile. L'esecuzione delle estensioni di codice gestito può essere consentita solo apportando modifiche esplicite ai criteri di sicurezza di .NET.
Concessione dell'attendibilità ai documenti di Office
Nella maggior parte dei casi, il documento di Office viene eseguito dall'area Risorse del computer e non è necessaria alcuna azione da parte dell'utente per consentire l'apertura del documento nel modo previsto. Tuttavia, affinché l'applicazione venga eseguita, l'assembly deve essere considerato totalmente attendibile. Nel caso in cui il documento fosse arrivato come allegato di posta elettronica, è necessario salvarlo sul computer dell'utente, ad esempio sul desktop, prima di poter eseguire la soluzione, anche se il documento fa riferimento a un assembly attendibile, perché gli allegati rientrano nell'area Internet che non dispone dell'attendibilità totale.
Se il documento risiede in rete, l'amministratore deve concedere autorizzazioni anche per il documento. Per i documenti statici come i modelli, l'amministratore può concedere l'attendibilità al documento in base al percorso completo, ovvero all'URL. Per archivi più generali in cui numerosi utenti possono caricare contenuto arbitrario, ad esempio un elenco SharePoint, l'amministratore può scegliere di concedere l'attendibilità solo ai documenti di Office che si trovano in tale percorso condiviso. Per ulteriori informazioni, vedere la classe Procedura: concedere autorizzazioni per documenti e cartelle di lavoro archiviati in percorsi condivisi (System 2003).
Rimozione dell'attendibilità dagli assembly
Se viene individuato un problema di protezione nell'organizzazione, l'amministratore può disattivare temporaneamente tutto il codice gestito applicando criteri che non forniscono alcuna autorizzazione di esecuzione per tutto il codice. Se è necessario del codice gestito, l'amministratore può modificare ulteriormente i criteri in modo da consentire l'esecuzione soltanto del codice richiesto scegliendo una proprietà univoca di tale codice, ad esempio il percorso, il nome sicuro o la firma, e specificando tale proprietà con le autorizzazioni necessarie. Per attivare nuovamente il codice gestito è sufficiente ripristinare il formato precedente, una volta risolto il problema della sicurezza. Per ulteriori informazioni, vedere la classe Procedura: rimuovere autorizzazioni da cartelle e assembly (System 2003).
Vedere anche
Concetti
Distribuzione protetta (System 2003)
Procedura consigliata per la sicurezza nelle soluzioni Office (System 2003)
Considerazioni specifiche sulla protezione per le soluzioni Office