Usando funções para autorização do cliente

Você usa a segurança baseada em função para estabelecer uma política de autorização, determinando qual cliente ou cliente permitir e com qual autoridade. Você está decidindo quem deve ser capaz de executar quais ações e acessar quais recursos.

As funções facilitam isso atuando como um mecanismo de controle de acesso invocado sempre que um usuário tenta acessar qualquer recurso de aplicativo. Uma função é basicamente uma lista de usuários, mais precisamente, uma categoria simbólica de usuários que compartilham o mesmo privilégio de segurança. Ao atribuir uma função a um recurso de aplicativo, você está concedendo permissão de acesso para esse recurso a quem for membro dessa função.

Portanto, você pode definir um privilégio de segurança muito particular declarando-o como uma função e atribuindo a função a recursos específicos. Quando o aplicativo é implantado, o administrador do sistema pode preencher a função com usuários reais e grupos de usuários. Quando o aplicativo for executado, o COM+ imporá a política realizando verificações de função.

Fundamentalmente, as funções ajudam a proteger seu código, ou seja, os métodos que podem ser chamados por clientes de um aplicativo COM+. A associação de função é verificada sempre que um cliente tenta chamar um método exposto por um componente em um aplicativo. Se o chamador estiver em uma função atribuída ao método chamado ou recurso, a chamada terá êxito; caso contrário, ele falhará.

Segurança de Role-Based Declarativa

Com a segurança declarativa baseada em função, você declara administrativamente as funções, usando a ferramenta administrativa dos Serviços de Componentes ou as funções administrativas, e as atribui administrativamente aos recursos do aplicativo. Onde e como definir a segurança declarativa determinarão onde os limites de segurança são desenhados para seu aplicativo. Para obter mais detalhes, consulte Limites de Segurança.

Você pode atribuir uma determinada função a todo o aplicativo, a um componente específico, a uma interface específica em um componente ou a um método específico em uma interface. As atribuições de função são herdadas pela cadeia natural de inclusão, ou seja, se você atribuir uma função a um componente, ela será atribuída implicitamente a cada interface e método expostos por esse componente.

Com a disponibilidade de atribuições de função no nível do método, você pode ajudar efetivamente a proteger componentes e interfaces que não foram projetados com segurança em mente. No entanto, se os próprios métodos não estiverem protegíveis com atribuições de função declarativas, talvez seja necessário fazer a verificação de função programática. Geralmente, é uma boa ideia ter a segurança em mente ao decidir como fatorar a funcionalidade dos negócios por meio de métodos; caso contrário, você pode encontrar-se adicionando código relacionado à segurança no último minuto.

Para obter procedimentos detalhados para definir a segurança baseada em função, consulte Configurando Role-Based Segurança.

Segurança programática

Em algumas circunstâncias, talvez você queira colocar a lógica de segurança em componentes enquanto ainda usa a segurança baseada em função. Pode ser que você não consiga, ou opte por não fazer isso, fatorar todas as decisões de acesso por meio de métodos. Por exemplo, você pode ter um recurso de aplicativo privado, talvez um banco de dados específico, que você deseja permitir que apenas alguns chamadores de um método acessem, excluindo outros. Ou talvez você tenha um único método TransferMoney e queira restringir alguns chamadores limitando o valor que eles podem transferir.

Nessas circunstâncias, você pode fazer verificação de função no código. Uma API simples é fornecida, permitindo que você verifique se a segurança está ativada e se um chamador ou um usuário específico está em determinada função. Essa funcionalidade está disponível somente quando a segurança baseada em função está habilitada. Isso significa que você ainda pode aproveitar a segurança declarativa baseada em função em que ela é suficiente e, em seguida, pode estendê-la programaticamente para um nível mais fino de granularidade quando necessário.

Além disso, ao usar a segurança baseada em função, você tem acesso programático a informações sobre todos os chamadores upstream na cadeia de chamadas para o componente. Isso é especialmente útil quando você deseja manter uma trilha de auditoria detalhada.

Para obter descrições de como fazer verificação de função no código e como acessar informações de contexto de chamada de segurança, consulte Programmatic Component Security.

Autorização e Autenticação

A autorização significativa presupõe que você está confiante de que os clientes são realmente quem eles dizem que são. A verificação da identidade do cliente é tratada separadamente por um serviço de autenticação. Sem autenticação, você está basicamente permitindo que os chamadores entrem no sistema de honra. Para obter descrições da autenticação, pois ela afeta aplicativos COM+, consulte Autenticação de Cliente.

Criando funções com eficiência

Limites de segurança

Informações de contexto de chamada de segurança

Propriedade Contexto de Segurança