Partilhar via


Segurança do fluxo de trabalho

O Windows Workflow Foundation (WF) é integrado com várias tecnologias diferentes, como o Microsoft SQL Server e o Windows Communication Foundation (WCF). A interação com essas tecnologias pode introduzir problemas de segurança em seu fluxo de trabalho, se feita incorretamente.

Nota

Os fluxos de trabalho descrevem a ordem de execução e as dependências entre tarefas de curta ou longa execução. Como um mecanismo de execução de código, apenas o código confiável deve ser carregado e executado. Os desenvolvedores devem garantir que apenas fluxos de trabalho confiáveis sejam usados com aplicativos que usam WF.

Preocupações com a segurança de persistência

  1. Os fluxos de trabalho que usam uma atividade e persistência Delay precisam ser reativados por um serviço. O Windows AppFabric usa o WMS (Serviço de Gerenciamento de Fluxo de Trabalho) para reativar fluxos de trabalho com temporizadores expirados. O WMS cria um WorkflowServiceHost para hospedar o fluxo de trabalho reativado. Se o serviço WMS for interrompido, os fluxos de trabalho persistentes não serão reativados quando seus temporizadores expirarem.

  2. O acesso à instanciação duradoura deve ser protegido contra entidades maliciosas externas ao domínio da aplicação. Além disso, os desenvolvedores devem garantir que o código mal-intencionado não possa ser executado no mesmo domínio do aplicativo que o código de instanciação durável.

  3. A instanciação durável não deve ser executada com permissões elevadas (Administrador).

  4. Os dados que estão a ser processados fora do domínio da aplicação devem ser protegidos.

  5. Os aplicativos que exigem isolamento de segurança não devem compartilhar a mesma instância da abstração do esquema. Esses aplicativos devem usar provedores de armazenamento diferentes ou provedores de armazenamento configurados para usar instanciações de armazenamento diferentes.

Preocupações com a segurança do SQL Server

  • Quando um grande número de atividades filhas, locais, marcadores, extensões de host ou escopos são usados, ou quando marcadores com cargas úteis muito grandes são usados, a memória pode ser esgotada ou quantidades indevidas de espaço no banco de dados podem ser alocadas durante a persistência. Isso pode ser atenuado usando segurança no nível do objeto e no nível do banco de dados.

  • Ao usar SqlWorkflowInstanceStoreo , o armazenamento de instâncias deve ser protegido.

  • Os dados confidenciais no armazenamento de instâncias devem ser criptografados. Para obter mais informações, consulte Criptografia do SQL Server.

  • Como a cadeia de conexão do banco de dados é frequentemente incluída em um arquivo de configuração, a ACL (segurança no nível do Windows) deve ser usada para garantir que o arquivo de configuração (Web.Config normalmente) seja seguro e que as informações de login e senha não sejam incluídas na cadeia de conexão. Em vez disso, a autenticação do Windows deve ser usada entre o banco de dados e o servidor Web.

Considerações para WorkflowServiceHost

Pacote de Segurança WF CTP

O Microsoft WF Security Pack community technology preview (CTP) 1 é um conjunto de atividades e sua implementação com base no Windows Workflow Foundation no .NET Framework 4 (WF 4) e no Windows Identity Foundation (WIF). O Microsoft WF Security Pack CTP 1 contém atividades e seus designers que ilustram como habilitar facilmente vários cenários relacionados à segurança usando o fluxo de trabalho, incluindo:

  1. Representar uma identidade de cliente no fluxo de trabalho

  2. Autorização no fluxo de trabalho, como PrincipalPermission e validação de declarações

  3. Mensagens autenticadas usando ClientCredentials especificadas no fluxo de trabalho, como nome de usuário/senha ou um token recuperado de um STS (Serviço de Token de Segurança)

  4. Fluindo um token de segurança do cliente para um serviço back-end (delegação baseada em declarações) usando WS-Trust Atas