Mecanismos de Controlo de Acessos
Você pode controlar o acesso de várias maneiras com o Windows Communication Foundation (WCF). Este tópico discute brevemente os vários mecanismos e fornece sugestões sobre quando usar cada um; destina-se a ajudá-lo a selecionar o mecanismo correto a ser usado. As tecnologias de acesso estão listadas por ordem de complexidade. O mais simples é o PrincipalPermissionAttributee o mais complexo é o Modelo de Identidade.
Além desses mecanismos, a representação e a delegação com o WCF são explicadas em Delegação e Representação.
PrincipalPermissionAttribute
O PrincipalPermissionAttribute é usado para restringir o acesso a um método de serviço. Quando o atributo é aplicado a um método, ele pode ser usado para exigir a identidade de um chamador específico ou a associação a um grupo ou função ASP.NET do Windows. Se o cliente for autenticado usando um certificado X.509, ele receberá uma identidade principal que consiste no nome do assunto mais a impressão digital do certificado.
Use o PrincipalPermissionAttribute para controlar o acesso a recursos no computador em que o serviço está sendo executado e se os usuários do serviço sempre farão parte do mesmo domínio do Windows em que o serviço está sendo executado. Você pode criar facilmente grupos do Windows que tenham níveis especificados de acesso (como nenhum, somente leitura ou leitura e gravação).
Para obter mais informações sobre como usar o atributo, consulte Como restringir o acesso com a classe PrincipalPermissionAttribute. Para obter mais informações sobre identidade, consulte Identidade e autenticação do serviço.
ASP.NET Provedor de Associação
Uma característica do ASP.NET é o provedor de associação. Embora o provedor de associação não seja tecnicamente um mecanismo de controle de acesso, ele permite controlar o acesso ao serviço, limitando o conjunto de identidades possíveis que podem acessar o ponto de extremidade do serviço. O recurso de associação inclui um banco de dados que pode ser preenchido com combinações de nome de usuário/senha que permitem que os usuários de um site estabeleçam contas com o site. Para acessar um serviço que usa o provedor de associação, um usuário deve fazer logon com seu nome de usuário e senha.
Nota
Você deve primeiro preencher o banco de dados usando o recurso ASP.NET antes que um serviço WCF possa usá-lo para fins de autorização.
Você também pode usar o recurso de associação se já tiver um banco de dados de associação de um site ASP.NET existente e quiser permitir que os mesmos usuários usem seu serviço, autorizados com os mesmos nomes de usuário e senhas.
Para obter mais informações sobre como usar o recurso de associação em um serviço WCF, consulte Como usar o provedor de associação ASP.NET.
ASP.NET Provedor de função
Outra característica do ASP.NET é a capacidade de gerenciar a autorização usando funções. O provedor de função ASP.NET permite que um desenvolvedor crie funções para usuários e atribua cada usuário a uma função ou funções. Assim como acontece com o provedor de associação, as funções e atribuições são armazenadas em um banco de dados e podem ser preenchidas usando ferramentas fornecidas por uma implementação específica do provedor de função ASP.NET. Assim como acontece com o recurso de associação, os desenvolvedores do WCF podem usar as informações no banco de dados para autorizar usuários de serviço por funções. Eles podem, por exemplo, usar o provedor de função em combinação com o PrincipalPermissionAttribute
mecanismo de controle de acesso descrito acima.
Você também pode usar o provedor de função ASP.NET se tiver um banco de dados de provedor de função ASP.NET existente e quiser usar o mesmo conjunto de regras e atribuições de usuário em seu serviço WCF.
Para obter mais informações sobre como usar o recurso de provedor de função, consulte Como usar o provedor de função ASP.NET com um serviço.
Gestor de Autorizações
Outro recurso combina o Gerenciador de Autorização (AzMan) com o provedor de função ASP.NET para autorizar clientes. Quando ASP.NET hospeda um serviço Web, o AzMan pode ser integrado ao aplicativo para que a autorização para o serviço seja feita através do AzMan. ASP.NET gerenciador de funções fornece uma API que permite gerenciar funções de aplicativo, adicionar e remover usuários de funções e verificar a associação de função, mas não permite que você consulte se um usuário está autorizado a executar uma tarefa ou operação nomeada. AzMan permite definir operações individuais e combiná-las em tarefas. Com o AZMan, além das verificações de função, você também pode verificar se um usuário pode executar uma tarefa. A atribuição de função e a autorização de tarefas podem ser configuradas fora do aplicativo ou executadas programaticamente dentro do aplicativo. O snap-in do Console de Gerenciamento Microsoft (MMC) de administração AzMan permite que os administradores alterem as tarefas que uma função pode executar em tempo de execução e gerenciem a associação de funções de cada usuário.
Você também pode usar o AzMan e o provedor de função ASP.NET se já tiver acesso a uma instalação existente do AzMan e quiser autorizar seus usuários de serviço usando os recursos da combinação AzMan/provedor de função.
Para obter mais informações sobre o AzMan e o provedor de função ASP.NET, consulte Como usar o Gerenciador de Autorização (AzMan) com o ASP.NET 2.0. Para obter mais informações sobre como usar o AzMan e o provedor de função para serviços WCF, consulte Como usar o provedor de função do Gerenciador de Autorização ASP.NET com um serviço.
Modelo de identidade
O Modelo de Identidade é um conjunto de APIs que permitem gerenciar declarações e políticas para autorizar clientes. Com o Modelo de Identidade, você pode examinar cada declaração contida nas credenciais que o chamador usou para autenticar-se no serviço, comparar as declarações com o conjunto de políticas para o serviço e conceder ou negar acesso com base na comparação.
Use o Modelo de Identidade se precisar de um bom controle e da capacidade de definir critérios específicos antes de conceder acesso. Por exemplo, ao usar o PrincipalPermissionAttribute, o critério é simplesmente que a identidade do usuário seja autenticada e pertença a uma função específica. Por outro lado, usando o Modelo de Identidade, você pode criar uma política que afirma que o usuário deve ter mais de 18 anos de idade e possuir uma carteira de motorista válida antes de ter permissão para visualizar um documento.
Um exemplo em que você pode se beneficiar do controle de acesso baseado em declaração do Modelo de Identidade é ao usar credenciais de federação no cenário de token emitido. Para obter mais informações sobre federação e tokens emitidos, consulte Federação e tokens emitidos.
Para obter mais informações sobre o Modelo de Identidade, consulte Gerenciando declarações e autorização com o Modelo de Identidade.
Consulte também
- PrincipalPermissionAttribute
- Como: Restringir o acesso com a classe PrincipalPermissionAttribute
- Como usar o provedor de função ASP.NET com um serviço
- Como usar o provedor de função do Gerenciador de Autorização ASP.NET com um serviço
- Gerenciando declarações e autorizações com o modelo de identidade
- Delegação e falsificação de identidade