Protegendo hospedagem e persistência

O repositório de persistência é uma parte fundamental da arquitetura do Windows Server AppFabric. Esse repositório permite a durabilidade das instâncias do Windows Workflow Foundation (WF) em seus vários estados de execução. Você pode manipular instâncias persistidas do serviço de fluxo de trabalho usando ferramentas administrativas do AppFabric. Você deve fornecer as permissões do repositório de persistência aos usuários do AppFabric que executam as ferramentas administrativas, bem como aos aplicativos em tempo de execução, para ler e gravar nesse repositório de dados. Você também deve controlar o acesso ao repositório de persistência nos níveis de escopo de gerenciamento e aplicativos.

Um aspecto importante de segurança é onde ocorre a hospedagem de um aplicativo. O isolamento de aplicativos impede que os dados sejam visualizados ou acessados por outras aplicativos. Além disso, controlar a identidade do aplicativo para acesso aos recursos em um ponto posterior do processamento é uma parte fundamental do modelo de segurança do AppFabric. Essa identidade afeta a entidade de segurança que o aplicativo usa quando tenta acessar o repositório de persistência.

Tanto a hospedagem como a persistência se enquadram nos escopos de aplicativos e gerenciamento, e elas devem ser protegidas de forma diferente em cada área. As permissões específicas são definidas em virtude da inclusão em vários grupos de segurança. O escopo de segurança de aplicativos afeta as permissões de um aplicativo em tempo de execução, e se correlaciona com a função conceitual de Usuários do Servidor de Aplicativos. O escopo de gerenciamento de segurança afeta as ferramentas e as operações relacionadas que um administrador e os serviços do sistema podem executar. Essas permissões se correlacionam, com as funções conceituais de Administradores do Servidor de Aplicativos e Operadores do Servidor de Aplicativos.

Protegendo os dados de persistência

Quando uma instância de um serviço é persistida, seu estado no sistema é salvo no repositório de persistência. Os aplicativos frequentemente coletam e transmitem informações de identificação pessoal ou outros dados confidenciais. Assim que os dados são incluídos no estado do aplicativo quando um serviço é persistido, eles são salvos no repositório de persistência. Vários servidores, sites e aplicativos podem compartilhar um único repositório de persistência. Pelo projeto, os dados de persistência são agregados em servidores e sites que compartilham um repositório, para facilitar o gerenciamento do estado de atividade de potencialmente milhares de instâncias de um serviço em um ambiente de grande porte. Isso permite que uma instância de um serviço seja persistida durante a execução em um servidor do AppFabric e, depois, reiniciada em outro servidor, se assim exigirem os critérios de balanceamento de carga.

Depois que os dados forem armazenados no repositório de persistência, eles poderão ser vistos por todos os membros da função de banco de dados AS_Administrators e por todos os membros das funções sysadmin e dbo do SQL Server. Como os dados de persistência são vulneráveis à exposição acidental ou proposital, você deve tomar cuidado para diminuir os riscos, gerenciando as permissões corretamente.

Você pode proteger os dados no repositório de persistência das seguintes maneiras:

  • Use diferentes repositórios de persistência. Você pode criar e configurar um repositório de persistência alternativo no mesmo servidor ou em um servidor diferente, usando cmdlets do AppFabric para criar o repositório, e usando a página AppFabric Configuração do Banco de Dados de Persistência para configurá-lo. Então, você pode configurar certos aplicativos para usar apenas esse repositório. Isto proporciona aos aplicativos especificados um repositório privado de dados de persistência que nenhum outro aplicativo poderá acessar.

  • Divida os repositórios de persistência e de monitoramento em dois repositórios diferentes. Por padrão, a tabela e as entidades dos repositórios de persistência e monitoramento são criadas no repositório DefaultApplicationServerExtensions durante a instalação. Você pode dedicar um repositório apenas à persistência e o outro apenas ao monitoramento. Isso isola aplicativos e usuários nos escopos de gerenciamento e aplicativos, impedindo-os de ter acesso a um único repositório duplo e, portanto, de ter acesso a todas as tabelas de persistência e monitoramento.

  • Use grupos do Windows e funções do SQL Server. O acesso a um repositório de persistência do SQL Server é implementado através de funções de banco de dados do SQL Server. Durante a inicialização de um repositório de instâncias, o administrador pode inserir grupos do Windows das funções "Usuários do Repositório de Instâncias", "Leitores do Repositório de Instâncias" e "Administradores do Repositório de Instâncias" do SQL. Para obter mais informações sobre como proteger dados em repositórios de persistência usando grupos do Windows e funções do SQL Server, consulte Configuração de segurança em repositórios de persistência.

  • Manipule os recursos de persistência Você pode usar as extensões adicionadas ao Gerenciador do IIS pelo AppFabric para habilitar e desabilitar recursos de persistência de um serviço de fluxo de trabalho específico, de todos os serviços de fluxo de trabalho de um aplicativo, de todos os aplicativos de um site, ou de todos os sites da Web em um servidor. Você pode definir uma política de persistência em um nível superior e fazer com que todos os níveis inferiores da hierarquia do IIS e do WAS herdem as configurações de política.

  • Use diferentes identidades de pools de aplicativos. Ao usar identidades diferentes para pools de aplicativos do IIS, você pode limitar ou ampliar as permissões do SQL Server para todo o repositório de persistência ou para entidades individuais dentro dele. Esta é uma técnica de segurança refinada que você executa nos níveis de IIS e SQL Server, e não pode ser usada diretamente pelas ferramentas do AppFabric.

Protegendo a Hospedagem

Você pode usar isolamento de processos para separar os serviços de escopo de gerenciamento com privilégios elevados do AppFabric, tais como Serviço de Coleta de Eventos e Serviço de Gerenciamento de Fluxo de Trabalho, a partir de processos de trabalho de escopo de aplicativos com baixos privilégios. Os serviços do AppFabric são executados no escopo de gerenciamento e terão acesso completo aos seus respectivos repositórios de monitoramento e persistência. Todos os processos de trabalho e de usuários dos aplicativos são executados no escopo de aplicativos, geralmente no contexto de uma identidade do pool de aplicativos.

No escopo de aplicativos, um maior isolamento de da hospedagem proporciona uma visão mais individualizada da segurança. Um aplicativo contém um ou mais serviços do .NET Framework, e todos são executados no mesmo processo. Para proteger esses serviços do .NET Framework uns dos outros, eles podem ser executados no contexto de diferentes AppDomains. Um processo do .NET Framework contém um ou mais AppDomains do .NET Framework, sendo cada um dos quais um ambiente isolado onde os aplicativos são executados. Dentro de um pool de aplicativos do IIS pode haver uma ou mais aplicativos sendo executados simultaneamente se eles estiverem configurados para compartilhar um pool de aplicativos. Assim, os AppDomains são uma maneira leve de aplicar o isolamento de execução sem a necessidade de criar a sobrecarga de outro processo com todos os seus recursos.

Se você precisar de uma solução de hospedagem mais isoladas, configure cada aplicativo para ser executado em seu próprio pool de aplicativos com a sua própria identidade. Essa é uma maneira de dar aos aplicativos identidades diferentes quando eles acessarem o repositório de persistência. O IIS põe todas essas identidades dentro do grupo de segurança IIS_IUSRS do Windows no tempo de execução. Do ponto de vista de segurança, a execução em um espaço de processos separado é quase idêntica à execução em um domínio de aplicativos separado, pois nenhum outro aplicativo pode acessar o código nem os dados de um determinado aplicativo. Perceba que, com os processos adicionais, vem a sobrecarga dos recursos adicionais do sistema operacional e das mudanças de contexto, sobre o processador, pois cada processo possui sua própria parte da CPU.

  2011-12-05