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
Fluxos de trabalho que usam uma necessidade de atividade e de persistência Delay de ser reactivated 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 reactivated. Se o serviço de WMS é interrompida, os fluxos de trabalho mantidas não reactivated quando seus timers eles expiram.
Acesso a métodos de como exemplo de bens deve ser protegido contra as entidades mal-intencionados externos ao domínio do aplicativo. Além disso, os desenvolvedores devem garantir que o código mal-intencionado não pode ser executado no mesmo domínio de aplicativo que o código de instâncias durável.
Citar como exemplo de bens não deve ser executado com permissões elevadas (de administrador).
Os dados que estão sendo processadas fora do domínio de aplicativo devem ser protegidos.
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 filhos, locais, indexadores, hospedam extensões, ou os escopos são usados, ou quando os indicadores com as carrega úteis muito grandes são usados, a memória pode ser esgotada, ou as quantidades inadequadas do espaço de base de dados podem ser atribuídas durante a persistência. Isso pode ser abrandado utilizando em nível de objeto e a segurança de base de dados - nível.
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 caracteres de base de dados é incluída com frequência em um arquivo de configuração, a segurança do windows nível (ACL) deve ser usada para garantir que o arquivo de configuração (Web.Config) geralmente é seguro, e que o logon e informações de senha não estão incluídos 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
Os pontos de extremidade do WCF (Windows Communication Foundation) usados em fluxos de trabalho devem ser protegidos. Para obter mais informações, consulte Visão Geral de Segurança do WCF.
Autorização do nível pode ser implementada usando ServiceAuthorizationManager. Consultar Como criar um gerenciador de autorização personalizado para um serviço para obter detalhes.
O ServiceSecurityContext para a mensagem de entrada também está disponível no fluxo de trabalho acessando OperationContext.
Bloco CTP de segurança de 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 bloco CTP 1 de segurança do Microsoft WF contém ambas as atividades e seus designers que ilustram como facilmente ative vários cenários relacionados a segurança usando o fluxo de trabalho, incluindo:
Representando uma identidade de cliente no fluxo de trabalho
Autorização de Em- fluxo de trabalho, como PrincipalPermission e validação de reivindicações
Autenticada mensagem usando ClientCredentials especificado no fluxo de trabalho, como o nome de usuário ou senha/um token recuperado de um serviço (STS) de símbolo de segurança
Fluxo um símbolo de segurança de cliente a um serviço back-end (delegação reivindicação- base) usando a ws-trust Ata