Modelo de Segurança para AppFabric
Você deve proteger os seus aplicativos .NET Framework administrados pelo Microsoft AppFabric 1.1 para Windows Server para permitir que os usuários acessem apenas os serviços e dados para os quais tenham autorização. Para fazer isso, você deve identificar os usuários, verificar se eles são quem dizem ser e determinar se eles têm permissão para visualizar as informações ou realizar a tarefa solicitada. A troca de mensagens entre o cliente e o servidor deve ser realizada através de um canal seguro para garantir a transferência privada de informações. As tecnologias da Microsoft que dão suporte ao AppFabric prestam serviços integrados que permitem às empresas conectar-se e usar seus aplicativos de maneira segura. Os administradores do AppFabric não precisam manter vários conjuntos de bancos de dados de usuários, e todos os serviços para literalmente centenas de servidores de intranet podem ser facilmente gerenciados com uma única ferramenta gráfica. A integração das tecnologias de segurança da Microsoft com os produtos que dão suporte ao AppFabric permitem atribuir aos usuários acesso a todos os recursos necessários para executar seus aplicativos.
Partes principais da segurança do AppFabric
O objetivo principal do modelo de segurança do AppFabric é fornecer um mecanismo simples, porém efetivo, para a maioria dos usuários do AppFabric. Devido à sua integração com os modelos de segurança existentes do Windows, do .NET Framework, do IIS, e do SQL Server, os usuários podem aproveitar o conhecimento de segurança e as qualificações que já possuem para usar o modelo de segurança do AppFabric. Especificamente, ele usa os conceitos de segurança do Windows, do .NET Framework, do IIS e do SQL Server para aplicar diferentes níveis de segurança aos aplicativos do WCF e do WF que ele gerencia. Como o AppFabric acrescenta apenas pequenos aprimoramentos a um quadro integrado de segurança já robusto da Microsoft, seu modelo de segurança é familiar aos administradores que tenham conhecimento dos conceitos de segurança da Microsoft. Isso resulta em um menor custo de total de propriedade no longo prazo para os clientes do AppFabric. Se você já estiver familiarizado com esses produtos e essas tecnologias, poderá proteger facilmente o seu aplicativo, seguindo as orientações da seção Segurança e proteção.
O AppFabric utiliza os conceitos de segurança existentes da seguinte forma:
Segurança do Windows. O AppFabric utiliza segurança de grupos e do sistema de arquivos. A robusta arquitetura de segurança do Windows é usada de maneira uniforme consistente em todos os componentes de um aplicativo, com a autenticação ligada a um acesso controlado aos recursos do AppFabric. Para obter mais informações, consulte Segurança do Windows.
Segurança do .NET Framework. O AppFabric aproveita a segurança do Windows Communication Foundation para os seus serviços WCF e WF. O WCF é uma plataforma distribuída de programação SOAP baseada em mensagens, e proteger as mensagens entre clientes e serviços é essencial para proteger os dados. O WCF é uma plataforma versátil e interoperável para troca de mensagens seguras com base na infra-estrutura de segurança existente e nos reconhecidos padrões de segurança das mensagens SOAP. O WCF utiliza conceitos que são familiares se você tiver criado aplicativos distribuídos e seguros com as tecnologias existentes, como HTTPS, segurança integrada do Windows, ou nomes de usuários e senhas para autenticar usuários. Para obter mais informações, consulte Segurança de IIS e .NET Framework.
Segurança do IIS. O AppFabric aproveita um subconjunto dos recursos de segurança do IIS porque seus serviços são hospedados no Serviço de Ativação de Processos do Windows (WAS) e suas ferramentas de administração são exibidos no Gerenciador do IIS. O IIS é estreitamente integrado com o sistema operacional Windows para proporcionar os mais elevados níveis de segurança a aplicativos e dados. O IIS integra-se ao modelo de segurança do Windows NT e aos serviços do sistema operacional, tais como sistema e diretório de arquivos. O AppFabric aproveita o conceito de identidade do pool de aplicativos quando os serviços de fluxo de trabalho do AppFabric precisam acessar o banco de dados de persistência no tempo de execução. O IIS usa as mesmas Listas de Controle de Acesso (ACLs) do Windows NT, além de todos os outros serviços do Windows. E como o IIS usa o banco de dados de usuários do Windows NT Server, os administradores do AppFabric não precisam criar contas de usuário separadas em cada servidor de Web, e os usuários da intranet precisam fazer logon em sua rede uma única vez. Para obter mais informações, consulte Segurança de IIS e .NET Framework.
Segurança do SQL Server. O AppFabric cria funções de banco de dados do SQL Server para controlar o acesso aos seus bancos de dados de persistência e monitoramento. O AppFabric usa a autenticação integrada do Windows para acessar seus bancos de dados SQL Server. A segurança integrada usa a identidade atual do Windows estabelecida no thread de chamada para acessar os bancos de dados SQL Server. Dessa forma, você pode estabelecer a correlação da identidade do Windows com os banco de dados e as permissões do SQL Server do AppFabric. Para obter mais informações, consulte Segurança do SQL Server.
Funções conceituais de segurança do AppFabric
Para entender o modelo de segurança do AppFabric, ele ajuda a compreender os atributos das três funções de segurança do AppFabric. Essas funções são puramente conceituais, e você não vai encontrar entidades com esses nomes em nenhum lugar do modelo de segurança. No entanto, as funções conceituais se manifestam nos grupos físicos de segurança do Windows respectivamente correlacionados, e em funções do banco de dados SQL Server. Em sua solução de segurança, você atribui usuários e permissões para essas funções da seguinte maneira:
Observadores do Servidor de Aplicativos. Esta função administrativa oferece total visibilidade da persistência dos aplicativos e dos dados de monitoramento. Os Observadores do Servidor de Aplicativos podem:
Enumerar aplicativos e serviços
Exibir as configurações de aplicativos e serviços
Exibir dados de monitoramento
Examinar instâncias persistidas
Administradores de Servidor de Aplicativos. Esta função administrativa oferece controle total da configuração, do monitoramento e da persistência dos aplicativos. Os Administradores do Servidor de Aplicativos podem executar todas as tarefas que o grupo de Observadores do Servidor de Aplicativos podem executar, além das seguintes tarefas:
Suspender, reiniciar, encerrar, cancelar e excluir instâncias persistidas
Criar e remover origens de eventos e coletores de eventos
Ver, expurgar, e arquivar dados de monitoramento
Usuários do Servidor de Aplicativos. A função de tempo de execução é usada pelo IIS no momento da de execução para atribuir as identidades de todos os pools de aplicativos que hospedam aplicativos. Isso libera para os serviços presentes nos aplicativos acesso compartilhado a bancos de dados de persistência e serviços do sistema.
Como usuário do AppFabric, basta saber que essas são as três funções conceituais do AppFabric que você utilizará ao projetar sua solução de segurança. Você atribui os usuários e as permissões adequados, conforme indicado na documentação, aos respectivos grupos e contas do Windows NT, pools de aplicativos do IIS, e logins e funções de banco de dados do SQL Server. Para obter mais informações e orientações importantes de segurança sobre o uso das funções do AppFabric, as permissões de segurança que eles têm, e como eles são correlacionados com grupos de segurança do Windows e funções do banco de dados SQL Server, consulte Segurança do Windows, Segurança de IIS e .NET Framework, e Segurança do SQL Server.
Escopo de segurança do AppFabric
O AppFabric utiliza contas de segurança do Windows e logins e funções de banco de dados do SQL Server para determinar o acesso de um usuário ou aplicativo aos recursos do sistema, tais como bancos de dados de persistência, dados do temporizador, dados de monitoramento e arquivos de configuração. O acesso a esses recursos ocorre no níveis de o aplicativo e gerenciamento, que são as duas áreas de escopo lógico que se relacionam com o modelo de segurança do AppFabric. O escopo dos aplicativos circunda o processo de execução dos serviços do AppFabric hospedados como aplicativos do IIS. O escopo de gerenciamento diz respeito ao gerenciamento do AppFabric do ponto de vista da administração. Para entender melhor o uso das três funções de segurança do AppFabric, vamos examinar a sua utilização no contexto do escopo dos aplicativos e do escopo de gerenciamento.
Escopo dos Aplicativos
O escopo dos aplicativos define o funcionamento real dos serviços do .NET Framework que estão configurados no AppFabric e hospedados no espaço de processos do WAS no IIS. Não se trata de administração nem de ferramentas; elas se enquadram no escopo de gerenciamento. Os conceitos do escopo de aplicativos valem para a função conceitual de segurança dos Usuários do Servidor de Aplicativos do AppFabric. Essa função é correlacionada com o grupo IIS_IUSRS Windows, que é um grupo de segurança do Windows usado para a conta do serviço IIS. Para obter mais informações, consulte Segurança do Windows, Segurança de IIS e .NET Framework, e Segurança do SQL Server.
Cada aplicativo é executado dentro de um pool de aplicativos. Esse pool pode ser o pool de aplicativos padrão, ou você pode criar e configurar seu próprio pool de aplicativos. (A criação e configuração de um pool de aplicativos é uma função administrativa discutida na seção "Escopo de Gerenciamento abaixo). Você usa um pool de aplicativos para agrupar aplicativos e serviços no mesmo espaço de processo de trabalho, compartilhando, assim, definições de configuração e outras entidades do sistema operacional. Como cada processo de trabalho funciona como uma instância separada do executável do processo de trabalho, W3WP.EXE, o processo de trabalho que atende a um pool de aplicativos é separado do processo de trabalho que atende outro. Isso permite o isolamento do aplicativo se você hospedar um aplicativo em seu próprio pool de aplicativos. O isolamento de aplicativos garante que, se um aplicativo da Web falhar, ele não afete os aplicativos que estão sendo executados em outros pools de aplicativos.
Outra vantagem de isolamento de aplicativos é o isolamento personalizado de segurança. Isso garante que o princípio de segurança configurado do processo de trabalho que hospeda o pool de aplicativos (que contém o serviço AppFabric.NET Framework) seja usado para o acesso de recursos em um ponto posterior do processo, como o SQL Server. A identidade padrão do pool de aplicativos é a conta Network_Service. Você pode atribuir a sus própria identidade personalizada de conta do Windows quando o seu pool de aplicativos estiver configurado no IIS. Em tempo de execução, o WAS encaminha todas as mensagens recebidas da fila do pool de aplicativos para o processo de trabalho W3WP.EXE adequado, usando as ligações dos aplicativos da Web especificadas na metabase do IIS. É assim que o AppFabric permite a ativação utilizando protocolos que não sejam o HTTP para os pontos de extremidade e serviços do WCF. O IIS retira dinamicamente todas as contas do Windows dos seus pools de aplicativos e as inclui no grupo de segurança local BUILTIN\IIS_IUSRS do Windows. Isso significa que, se você criar seu próprio pool de aplicativos para o aplicativo, o IIS adicionará automaticamente a identidade do seu pool de aplicativos no grupo IIS_IUsers do Windows.
Usar vários pools de aplicativos com identidades de segurança diferentes permite o isolamento do aplicativo em relação ao acesso aos bancos de dados de persistência e monitoramento do AppFabric em tempo de execução. Por padrão, esses bancos de dados são totalmente compartilhados com todas as identidades autenticadas do AppFabric utilizadas pelos seus pools de aplicativos hospedados. Se você precisar de um nível de segurança mais elevado com uso do isolamento, poderá atribuir permissões de maneira mais individualizada a recursos específicos de banco de dados para as identidades usadas por grupos específicos de aplicativos do IIS. Você também pode controlar a segurança em tempo de execução, criando o seu próprio banco de dados para aplicativos específicos, e assegurar que ocorra a conexão com esses bancos de dados personalizados para as identidades específicas. Você pode isolar um aplicativo individualmente do banco de dados de monitoramento e permitir que ele acesse apenas o banco de dados de persistência.
O escopo do aplicativo também vale para os serviços do sistema instalados e usados pelo AppFabric:
Serviço de Coleta de Eventos. Coleta eventos originados pelo AppFabric e por aplicativos hospedados.
Serviço de Gerenciamento de Fluxo de Trabalho. Processa de comandos de controle de fluxo de trabalho, ativa instâncias fluxo de trabalho com temporizadores com vencimento, e reinicia serviços abandonados de fluxo de trabalho.
Ambos os serviços são executados como a conta NTAuthority\LocalService. A conta LocalService tem permissão para emitir eventos de monitoramento e também para manipular instâncias persistidas (encerrar, suspender e reiniciar).
O aumento dos controles de segurança normalmente reduz a velocidade. Embora o isolamento de aplicativos aumente a capacidade de segurança, ele também consome mais memória e recursos do processo, devido à existência de vários processos. Para economizar recursos, você pode isolar aplicativos usando o modelo AppDomain do .NET Framework em vez de usar processos separados. Dois ou mais aplicativos podem coexistir de maneira segura com o mesmo processo dentro de AppDomains diferentes e respeitar a memória virtual e os valores de dados dos outros.
Escopo de Gerenciamento
O escopo de gerenciamento define o a administração e as ferramentas relacionadas à gestão administrativa dos aplicativos. Não se trata da execução efetiva dos serviços do .NET Framework configurados no AppFabric; isso se enquadra no escopo dos aplicativos. Os conceitos do escopo de gerenciamento valem para as funções conceituais de segurança Administradores do Servidor de Aplicativos e Observadores do Servidor de Aplicativos do AppFabric.
O escopo de gerenciamento diz respeito ao gerenciamento do AppFabric e suas tecnologias de apoio do ponto de vista da administração dos serviços do sistema. Você pode executar operações de gerenciamento antes que um aplicativo seja executado, por exemplo, instalando e configurando um aplicativo do .NET Framework no AppFabric. Você também pode realizar operações de gerenciamento durante a execução quando um estado de fluxo de trabalho tiver sido persistido e seu próximo passo precisar ser processado através da interface de usuário do AppFabric. Por exemplo, um fluxo de trabalho suspenso pode precisar ser reiniciado. A permissão de segurança para gerenciar a configuração e execução dos serviços .NET Framework configurados no AppFabric tem por base a participação em grupos de segurança específicos do Windows. O escopo de gerenciamento também se aplica ao Serviço de Coleta de Eventos e ao Serviço de Gerenciamento de Fluxo de Trabalho, mas, neste caso, do ponto de vista do gerenciamento e controle, em vez do ponto de vista do aplicativo.
As funções conceituais de segurança Administradores de Servidor de Aplicativos e Observadores do Servidor de Aplicativos se correlacionam, respectivamente, com os grupos locais de segurança AS_Administrators e AS_Observers do Windows NT. O grupo AS_Administrators contém a identificação de serviço (SID) do Serviço de Gerenciamento de Fluxo de Trabalho e do Serviço de Coleta de Eventos. Depois que os serviços forem registrados com o Service Control Manager, seus SIDs permanecem constantes. Isso significa que o Serviço de Coleta de Eventos e o Serviço de Gerenciamento de Fluxo de Trabalho farão parte de AS_Administrators, independentemente da identidade sob a qual eles forem executados. Normalmente, essa identidade é NTAuthority\LocalService. Portanto, usar as SIDs em vez das identidades de serviço garante que nenhum outro processo ou serviço executado sob a identidade NTAuthority\LocalService possa fazer parte de AS_Administrators. Para obter mais informações sobre as funções conceituais de segurança do AppFabric e como usá-las, consulte Segurança do Windows, Segurança de IIS e .NET Framework, e Segurança do SQL Server.
O AppFabric protege o escopo de gerenciamento no momento da instalação. Quando os cmdlets do Windows PowerShell criam os bancos de dados de monitoramento e persistência no momento da instalação, as funções apropriadas de banco de dados do SQL Server são criadas de acordo com as respectivas funções conceituais de segurança do AppFabric. Por exemplo, todas as funções criadas no SQL Server para AS_Observers são funções de leitura (função MonitoringDbReader par monitoramento e System.Activities.DurableInstancing.InstanceStoreObservers para persistência). As funções de banco de dados do SQL Server definidas para a conta de logon AS_Administrators contêm todas as funções de banco de dados relacionadas à conta de logon AS_Observers, além de outras funções para criar e modificar entidades banco de dados do ponto de vista administrativo.
Por padrão, a instalação do AppFabric executa alguns dos cmdlets do AppFabric durante o processo. O AppFabric cria todos os grupos e contas de segurança local necessários do Windows para a instalação do AppFabric em um único servidor. Se você estiver usando o AppFabric em mais de um servidor, precisará criar manualmente os grupos de domínio do Windows e atribuir a eles os grupos de segurança do Windows adequados para que esse servidor administre remotamente a instalação do AppFabric. Como administrador, você deve criar grupos de domínio como manifestações físicas das funções conceituais de segurança Administradores de Servidor de Aplicativos e Observadores do Servidor de Aplicativos (ou seja, DOMAIN\MyAppFabricAdmins e DOMAIN\MyAppFabricObservers). Então, você pode atribuir as contas de domínio aos grupos LOCAL\AS_Administrators e LOCAL\AS_Observers em todos os computadores do domínio com o AppFabric.
Modelo de Segurança para scripts personalizados do Windows PowerShell e Cmdlets do AppFabric
O AppFabric não cria um novo modelo de segurança personalizado para os scripts do Windows PowerShell, nem para os diversos cmdlets do Windows PowerShell que a versão do AppFabric contém. Tal como acontece com outros aspectos de seu modelo de segurança, o AppFabric utiliza modelos de segurança existentes em sua tecnologia de apoio. Neste caso, o AppFabric usa o modelo de segurança do Windows PowerShell para aplicar a segurança de scripts personalizados e cmdlets pré-incluídos do AppFabric.
Quando um script do Windows PowerShell do AppFabric é executado, ele faz isso usando a identidade de seu processo hospedeiro. Isso significa que o princípio de segurança do usuário que estiver executando o cmdlet é transmitido como a identificação do processo. Não há nenhuma maneira de usar a personificação para executar o cmdlet em um contexto de segurança que não seja o do usuário que está executando o processo hospedeiro.
Embora, por padrão, você possa executar interativamente os comandos do Windows PowerShell, a execução de scripts do Windows PowerShell fica inicialmente desativada por razões de segurança. Você precisa habilitar essa função através da política de grupo de Execução de Scripts do Windows PowerShell para permitir a execução dos seus scripts.
Os scripts do Windows PowerShell que acompanham o AppFabric são assinados digitalmente com um certificado adquirido de uma autoridade de certificação (CA). A assinatura de uma entidade com um certificado digital de uma CA protege a integridade do pacote. Através do uso do hashing unidirecional e de algoritmos de criptografia de chaves públicas, o processo de assinatura assegura que todas as modificações feitas em um pacote após sua assinatura pelo autor sejam detectados e que a execução do script seja posteriormente bloqueada. Você também pode usar assinaturas digitais para verificar se a entidade assinada foi realmente criada pela parte que alega tê-la criado. Uma alternativa simples e mais econômica ao uso de uma CA é usar uma CA local e o Microsoft Certificate Server para gerar um certificado auto-assinado. Você pode proteger ainda mais o certificado usando a criptografia de chave privada.
Segurança Observação |
---|
Usar uma CA local para assinar um pacote de scripts do Windows PowerShell oferece uma política de confiança mínima. Embora um pacote assinado localmente seja de confiança apenas no sistema local, ele não será confiável se for executado em sistemas externos. |
Gerenciamento Federado de Identidades e Logon Único (SSO)
Os sistemas federados de autenticação também são conhecidos como sistemas de logon único (SSO) da Web. Os sistemas federados operam através de fronteiras organizacionais e conectam processos que utilizam tecnologias, armazenamento de identidades, abordagens de segurança e modelos de programação diferentes. Com o Active Directory Federation Services (ADFS), as pessoas de uma empresa podem as contas do Active Directory que já possuem para acessar servidores hospedados por uma empresa diferente. O ADFS também estabelece uma relação de confiança entre as duas empresas e um logon único contínuo (SSO) para os usuários finais. Ele permite que as organizações dividam com segurança as informações de identidade de um usuário.
Um aplicativo baseado em HTTP gerenciado pelo AppFabric é, de muitas formas, simplesmente um aplicativo do IIS. Se você precisar integrar o gerenciamento federado de identidades e a autenticação por SSO na Web com o seu aplicativo, poderá usar o ADFS como se fosse utilizá-lo com um aplicativo do IIS. O ADFS correlaciona a conta de logon que acessa o aplicativo com uma conta de domínio e, depois, se autentica usando essa conta de domínio no IIS.
Como o .NET Framework 4 usa o WCF e seu modelo de segurança para a comunicação entre os seus serviços gerenciados e seus clientes, o modelo tradicional do IIS de permitir apenas o uso de aplicativos baseados em HTTP se estende para além do HTTP. Se você estiver usando a autenticação por HTTP sem Transporte, ou um aplicativo que não use HTTP, use a interface de programação dentro de seu serviço para implementar o processamento identidade de solicitações. Um aplicativo que reconhece solicitações usa solicitações que estejam presentes em um token de segurança do ADFS para tomar decisões de autorização e personalizar ainda mais os aplicativos. Assim como acontece com o ADFS, você deve compreender como funciona o processamento de identidades de solicitações com um aplicativo do IIS para integrar o processamento de solicitações com o seu aplicativo.
Nesta seção
Consulte também
Outros recursos
2012-03-05