Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Windows Workflow Foundation si integra con diverse tecnologie, ad esempio Microsoft SQL Server e Windows Communication Foundation (WCF). L'interazione con queste tecnologie può introdurre problemi di sicurezza nel flusso di lavoro, se eseguito in modo errato.
Nota
I flussi di lavoro descrivono l'ordine di esecuzione e le dipendenze tra attività a esecuzione breve o prolungata. Come meccanismo di esecuzione del codice, è necessario caricare ed eseguire solo codice attendibile. Gli sviluppatori devono assicurarsi che vengano usati solo flussi di lavoro attendibili con le applicazioni che usano WF.
Problemi di sicurezza della persistenza
I flussi di lavoro che usano un'attività Delay e la persistenza devono essere riattivati da un servizio. In Windows AppFabric viene usato il Servizio di gestione flussi di lavoro (WMS) per riattivare i flussi di lavoro con timer scaduti. WMS consente di creare un oggetto WorkflowServiceHost per ospitare il flusso di lavoro riattivato. Se il servizio WMS viene arrestato, i flussi di lavoro persistenti non verranno riattivati quando i timer scadono.
L'accesso alle istanze durevoli dovrebbe essere protetto da entità dannose esterne al dominio applicazione. Inoltre, gli sviluppatori devono assicurarsi che il codice dannoso non possa essere eseguito nello stesso dominio applicazione del codice dell'istanza durevole.
L'istanza durevole non deve essere eseguita con autorizzazioni (di amministratore) elevate.
I dati che vengono elaborati all'esterno del dominio applicazione devono essere protetti.
Le applicazioni che richiedono una isolamento di sicurezza non devono condividere la stessa istanza dell'astrazione dello schema. Tali applicazioni devono usare provider di archiviazione differenti o provider di archiviazione configurati per l'uso di istanze di archiviazione.
Problemi di sicurezza relativi a SQL Server
Quando si usano numerose attività figlio, percorsi, segnalibri, estensioni host o ambiti o quando si usano segnalibri con payload di notevoli dimensioni, la memoria può esaurirsi o si può allocare eccessivo spazio del database durante la persistenza. Questa situazione può essere attenuata con la sicurezza a livello di oggetto e a livello di database.
Quando si usa l'oggetto SqlWorkflowInstanceStore, l'archivio di istanze deve essere protetto.
I dati sensibili nell'archivio di istanze devono essere crittografati. Per altre informazioni, vedere Crittografia di SQL Server.
Poiché la stringa di connessione del database è spesso inclusa in un file di configurazione, è necessario usare la sicurezza a livello di Windows (ACL) per assicurarsi che il file di configurazione (in genere Web.Config) sia protetto e che le informazioni sull'accesso e sulla password non siano incluse nella stringa di connessione. Tra il database e il server Web dovrebbe invece essere usata l'autenticazione di Windows.
Considerazioni su WorkflowServiceHost
Gli endpoint di Windows Communication Foundation (WCF) usati nei flussi di lavoro devono essere protetti. Per altre informazioni, vedere Panoramica della sicurezza di Windows Communication Foundation.
È possibile implementare l'autorizzazione a livello host usando ServiceAuthorizationManager. Per altre informazioni, vedere Procedura: creare un gestore autorizzazioni personalizzato per un servizio.
L'oggetto ServiceSecurityContext per il messaggio in arrivo è disponibile anche dall'interno del flusso di lavoro tramite l'accesso a OperationContext.
WF Security Pack CTP
Microsoft WF Security Pack Community Technology Preview (CTP) 1 è un set di attività e relative implementazioni basato su Windows Workflow Foundation in .NET Framework 4 (WF 4) e Windows Identity Foundation. Microsoft WF Security Pack CTP 1 contiene sia le attività e che le finestre di progettazione che illustrano come attivare facilmente i diversi scenari relativi alla sicurezza mediante il flusso di lavoro, tra cui:
Rappresentazione di un'identità client nel flusso di lavoro
Autorizzazione nel flusso di lavoro, come PrincipalPermission e la convalida delle attestazioni
La messaggistica autenticata usando ClientCredentials specificato nel flusso di lavoro, ad esempio il nome utente/password o un token recuperato da un servizio token di sicurezza (STS)
Propagazione di un token di sicurezza client a un servizio back-end (delega basata su richieste) usando ActAs di WS-Trust