Condividi tramite


Sicurezza del flusso di lavoro

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

  1. 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.

  2. 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.

  3. L'istanza durevole non deve essere eseguita con autorizzazioni (di amministratore) elevate.

  4. I dati che vengono elaborati all'esterno del dominio applicazione devono essere protetti.

  5. 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

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:

  1. Rappresentazione di un'identità client nel flusso di lavoro

  2. Autorizzazione nel flusso di lavoro, come PrincipalPermission e la convalida delle attestazioni

  3. 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)

  4. Propagazione di un token di sicurezza client a un servizio back-end (delega basata su richieste) usando ActAs di WS-Trust