Seguridad del flujo de trabajoWorkflow Security

Windows Workflow Foundation (WF) se integra con varias tecnologías diferentes, como Microsoft SQL Server y Windows Communication Foundation (WCF).Windows Workflow Foundation (WF) is integrated with several different technologies, such as Microsoft SQL Server and Windows Communication Foundation (WCF). Al interactuar con estas tecnologías, se pueden introducir problemas de seguridad en su flujo de trabajo si no se hace de manera correcta.Interacting with these technologies may introduce security issues into your workflow if done improperly.

Problemas de seguridad de persistenciaPersistence Security Concerns

  1. Los flujos de trabajo que usan una actividad Delay y persistencia se deben reactivar mediante un servicio.Workflows that use a Delay activity and persistence need to be reactivated by a service. Windows AppFabric usa el Servicio de administración de flujos de trabajo (WMS) para reactivar flujos de trabajo con temporizadores expirados.Windows AppFabric uses the Workflow Management Service (WMS) to reactivate workflows with expired timers. WMS crea un WorkflowServiceHost para hospedar el flujo de trabajo reactivado.WMS creates a WorkflowServiceHost to host the reactivated workflow. Si se detiene el servicio de WMS, los flujos de trabajo conservados no se reactivarán cuando sus temporizadores expiren.If the WMS service is stopped, persisted workflows will not be reactivated when their timers expire.

  2. El acceso a la creación de instancias duraderas debe protegerse contra entidades malintencionadas externas al dominio de aplicación.Access to durable instancing should be protected against malicious entities external to the application domain. Además, los desarrolladores deben asegurarse de que el código malintencionado no se pueda ejecutar en el mismo dominio de aplicación que el código de creación de instancias duraderas.In addition, developers should ensure that malicious code can't be executed in the same application domain as the durable instancing code.

  3. La creación de instancias duraderas no se debe ejecutar con permisos elevados (administrador).Durable instancing should not be run with elevated (Administrator) permissions.

  4. Los datos que se procesan fuera del dominio de aplicación deben ser protegidos.Data being processed outside the application domain should be protected.

  5. Las aplicaciones que necesitan aislamiento de seguridad no deben compartir la misma instancia de abstracción de esquema.Applications that require security isolation should not share the same instance of the schema abstraction. Dichas aplicaciones deben usar proveedores de almacén diferentes o proveedores de almacén configurados usar diferentes instancias de almacén.Such applications should use different store providers, or store providers configured to use different store instantiations.

Problemas de seguridad de SQL ServerSQL Server Security Concerns

  • Cuando se usan numerosas actividades secundarias, ubicaciones, marcadores, extensiones de host o ámbitos, o cuando se usan marcadores con grandes cantidades de carga, puede ocurrir que la memoria se acabe o que se asignen cantidades indebidas de espacio a la base de datos durante la persistencia.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. Este hecho se puede reducir usando la seguridad del nivel de objeto o de la base de datos.This can be mitigated by using object-level and database-level security.

  • Al usar SqlWorkflowInstanceStore, se debe proteger el almacén de instancias.When using SqlWorkflowInstanceStore, the instance store must be secured. Para obtener más información, consulte prácticas recomendadas de SQL Server.For more information, see SQL Server Best Practices.

  • Se deberían cifrar los datos confidenciales del almacén de instancias.Sensitive data in the instance store should be encrypted. Para obtener más información, consulte cifrado de seguridad de SQL.For more information, see SQL Security Encryption.

  • Puesto que la cadena de conexión a bases de datos se suele incluir en un archivo de configuración, la seguridad de nivel de Windows (ACL) se debe usar para asegurarse de que el archivo de configuración (Web.Config normalmente) es seguro, y que la información de inicio de sesión y contraseña no se incluyen en la cadena de conexión.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. La autenticación de Windows se debe usar entre la base de datos y el servidor web en su lugar.Windows authentication should be used between the database and the web server instead.

Consideraciones para WorkflowServiceHostConsiderations for WorkflowServiceHost

CTP del paquete de seguridad de WFWF Security Pack CTP

El CTP 1 del paquete de seguridad de Microsoft WF es la primera versión de community technology preview (CTP) de un conjunto de actividades y su implementación en función de Windows Workflow Foundationen .NET Framework 4 (WF (4) y la 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). El CTP 1 del paquete de seguridad de Microsoft WF contiene ambas actividades y sus diseñadores que muestran cómo habilitar fácilmente diferentes escenarios relacionados con la seguridad usando el flujo de trabajo, incluidas: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. Suplantar una identidad del cliente en el flujo de trabajoImpersonating a client identity in the workflow

  2. Autorización en el flujo de trabajo, como PrincipalPermission y validación de notificacionesIn-workflow authorization, such as PrincipalPermission and validation of Claims

  3. Mensajería autenticada mediante ClientCredentials especificadas en el flujo de trabajo, como nombre de usuario/contraseña o un token recuperado de un Servicio de token de seguridad (STS)Authenticated messaging using ClientCredentials specified in the workflow, such as username/password or a token retrieved from a Security Token Service (STS)

  4. Llevar un token de seguridad de cliente a un servicio de fondo (delegación basada en notificaciones) mediante ActAs de WS-TrustFlowing a client security token to a back-end service (claims-based delegation) using WS-Trust ActAs

Para obtener más información y descargar el CTP del paquete de seguridad de WF, vea: CTP del paquete de seguridad de WFFor more information and to download the WF Security Pack CTP, see: WF Security Pack CTP