Compartilhar via


Segurança de fluxo de trabalho

O WF (Windows Workflow Foundation) é integrado a várias tecnologias diferentes, como Microsoft SQL Server e WCF (Windows Communication Foundation). Interagir com essas tecnologias pode gerar problemas de segurança no fluxo de trabalho se feito de modo inadequado.

Observação

Os fluxos de trabalho descrevem a ordem de execução e as dependências entre tarefas de execução curta ou longa. Como um mecanismo de execução de código, somente 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 o WF.

Problemas de segurança de persistência

  1. Fluxos de trabalho que usam uma atividade Delay e persistência precisam ser reativados por um serviço. Windows AppFabric usa o serviço de gerenciamento (WMS) de fluxo de trabalho para reativar fluxos de trabalho com timers expirados. WMS cria WorkflowServiceHost para hospedar o fluxo de trabalho reagendado. Se o serviço de WMS for interrompido, os fluxos de trabalho persistidos não serão reativados quando seus cronômetros expirarem.

  2. O acesso ao processamento contínuo deve ser protegido contra entidades mal-intencionadas 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 de aplicativo que o código de instâncias duráveis.

  3. Instâncias duráveis não devem ser executadas com permissões elevadas (permissões de administrador).

  4. Os dados que estão sendo processadas fora do domínio de aplicativo devem ser protegidos.

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

Problemas de segurança do SQL Server

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

  • Ao usar SqlWorkflowInstanceStore, o armazenamento de instância deve ser protegido.

  • Dados confidenciais no armazenamento de instância devem ser criptografados. Para obter mais informações, veja Criptografia do SQL Server.

  • Desde que a cadeia de conexão de banco de dados é incluída com frequência em um arquivo de configuração, a segurança em nível de Windows (ACL) deve ser usada para garantir que o arquivo de configuração (Web.Config) geralmente, é seguro e que as informações de login e senha não sejam incluídas na cadeia de conexão. A autenticação do Windows deve ser usada entre o base de dados e o servidor web em vez disso.

Considerações para WorkflowServiceHost

Pacote de Segurança CTP do WF

O pacote CTP (visualização de tecnologia da comunidade) 1 de segurança do Microsoft WF é um conjunto de atividades e sua implementação baseado no Windows Workflow Foundation no .NET Framework 4 (WF 4) e no Windows Identity Foundation (WIF). O pacote de segurança CTP 1 do Microsoft WF contém as atividades e seus respectivos designers que ilustram como facilmente ativar vários cenários relacionados à segurança usando workflow, incluindo:

  1. Representando uma identidade de cliente no fluxo de trabalho

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

  3. Mensagem autenticada usando as Credenciais do Cliente especificadas no fluxo de trabalho, como nome de usuário e senha, ou um token recuperado de um Serviço de Token de Segurança (STS)

  4. Fluxo de um token de segurança de cliente para um serviço de back-end (delegação baseada em reivindicações) usando WS-Trust ActAs