Sicurezza del flusso di lavoroWorkflow Security

Windows Workflow Foundation (WF) è integrato con varie tecnologie diverse, ad esempio Microsoft SQL Server e Windows Communication Foundation (WCF).Windows Workflow Foundation (WF) is integrated with several different technologies, such as Microsoft SQL Server and Windows Communication Foundation (WCF). L'interazione con queste tecnologie può introdurre problemi di sicurezza nel flusso di lavoro, se eseguito in modo errato.Interacting with these technologies may introduce security issues into your workflow if done improperly.

Problemi di sicurezza della persistenzaPersistence Security Concerns

  1. I flussi di lavoro che usano un'attività Delay e la persistenza devono essere riattivati da un servizio.Workflows that use a Delay activity and persistence need to be reactivated by a service. In Windows AppFabric viene usato il Servizio di gestione flussi di lavoro (WMS) per riattivare i flussi di lavoro con timer scaduti.Windows AppFabric uses the Workflow Management Service (WMS) to reactivate workflows with expired timers. WMS consente di creare un oggetto WorkflowServiceHost per ospitare il flusso di lavoro riattivato.WMS creates a WorkflowServiceHost to host the reactivated workflow. Se il servizio WMS viene arrestato, i flussi di lavoro persistenti non verranno riattivati quando i timer scadono.If the WMS service is stopped, persisted workflows will not be reactivated when their timers expire.

  2. L'accesso alle istanze durevoli dovrebbe essere protetto da entità dannose esterne al dominio applicazione.Access to durable instancing should be protected against malicious entities external to the application domain. Inoltre, gli sviluppatori devono assicurarsi che il codice dannoso non possa essere eseguito nello stesso dominio applicazione del codice dell'istanza durevole.In addition, developers should ensure that malicious code can't be executed in the same application domain as the durable instancing code.

  3. L'istanza durevole non deve essere eseguita con autorizzazioni (di amministratore) elevate.Durable instancing should not be run with elevated (Administrator) permissions.

  4. I dati che vengono elaborati all'esterno del dominio applicazione devono essere protetti.Data being processed outside the application domain should be protected.

  5. Le applicazioni che richiedono una isolamento di sicurezza non devono condividere la stessa istanza dell'astrazione dello schema.Applications that require security isolation should not share the same instance of the schema abstraction. Tali applicazioni devono usare provider di archiviazione differenti o provider di archiviazione configurati per l'uso di istanze di archiviazione.Such applications should use different store providers, or store providers configured to use different store instantiations.

Problemi di sicurezza relativi a SQL ServerSQL Server Security Concerns

  • 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.When large numbers of child activities, locations, bookmarks, host extensions, or scopes are used, or when bookmarks with very large payloads are used, memory can be exhausted, or undue amounts of database space can be allocated during persistence. Questa situazione può essere attenuata con la sicurezza a livello di oggetto e a livello di database.This can be mitigated by using object-level and database-level security.

  • Quando si usa l'oggetto SqlWorkflowInstanceStore, l'archivio di istanze deve essere protetto.When using SqlWorkflowInstanceStore, the instance store must be secured. Per altre informazioni, vedere procedure consigliate di SQL Server.For more information, see SQL Server Best Practices.

  • I dati sensibili nell'archivio di istanze devono essere crittografati.Sensitive data in the instance store should be encrypted. Per altre informazioni, vedere crittografia di sicurezza di SQL.For more information, see SQL Security Encryption.

  • 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.Since the database connection string is often included in a configuration file, windows-level security (ACL) should be used to ensure that the configuration file (Web.Config usually) is secure, and that login and password information are not included in the connection string. Tra il database e il server Web dovrebbe invece essere usata l'autenticazione di Windows.Windows authentication should be used between the database and the web server instead.

Considerazioni su WorkflowServiceHostConsiderations for WorkflowServiceHost

WF Security Pack CTPWF Security Pack CTP

Microsoft WF Security Pack CTP 1 è primo community versione technology preview (CTP) di un set di attività e la relativa implementazione in base a Windows Workflow Foundationin .NET Framework 4 (WF 4) e Windows Identity Foundation (WIF).The Microsoft WF Security Pack CTP 1 is the first community technology preview (CTP) release of a set of activities and their implementation based on Windows Workflow Foundationin .NET Framework 4 (WF 4) and the Windows Identity Foundation (WIF). 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:The Microsoft WF Security Pack CTP 1 contains both activities and their designers which illustrate how to easily enable various security-related scenarios using workflow, including:

  1. Rappresentazione di un'identità client nel flusso di lavoroImpersonating a client identity in the workflow

  2. Autorizzazione nel flusso di lavoro, come PrincipalPermission e la convalida delle attestazioniIn-workflow authorization, such as PrincipalPermission and validation of Claims

  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)Authenticated messaging using ClientCredentials specified in the workflow, such as username/password or a token retrieved from a 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-TrustFlowing a client security token to a back-end service (claims-based delegation) using WS-Trust ActAs

Per ulteriori informazioni e per scaricare WF Security Pack CTP, vedere: WF Security Pack CTPFor more information and to download the WF Security Pack CTP, see: WF Security Pack CTP