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 persistente

  1. I flussi di lavoro che utilizzano l'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 persistenti dovrebbe essere protetto da entità dannose esterne al dominio dell'applicazione. Inoltre, gli sviluppatori devono assicurarsi che il codice dannoso non possa essere eseguito nello stesso dominio applicativo del codice d'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 memoria differenti o provider di memoria configurati per utilizzare istanze di memoria diverse.

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 Pacchetto di Sicurezza 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à sia i progettisti che illustrano come attivare facilmente i diversi scenari relativi alla sicurezza utilizzando 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 dichiarazioni

  3. La messaggistica autenticata utilizzando ClientCredentials specificato nel workflow, come il nome utente e la password o un token ottenuto da un Security Token Service (STS)

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