Partilhar via


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

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

As funções facilitam isso agindo como um mecanismo de controle de acesso invocado sempre que um usuário tenta acessar qualquer recurso do 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 quer que seja membro dessa função.

Portanto, você pode definir um privilégio de segurança muito particular declarando-o como uma função e, em seguida, atribuindo a função a recursos específicos. Quando o aplicativo é implantado, o administrador do sistema pode preencher a função com usuários e grupos de usuários reais. Quando o aplicativo é executado, o COM+ impõe a política executando 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 à função é verificada sempre que um cliente tenta chamar um método exposto por um componente em uma aplicação. Se o chamador estiver em uma função atribuída ao método ou recurso chamado, a chamada será bem-sucedida; caso contrário, falha.

Segurança Role-Based Declarativa

Com a segurança declarativa baseada em função, você declara funções administrativamente — usando a ferramenta administrativa Serviços de Componentes ou as funções Administrativas — e as atribui administrativamente aos recursos do aplicativo. Onde e como você define a segurança declarativa determinará onde os limites de segurança serão traçados 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 ao longo da cadeia natural de inclusão, ou seja, se você atribuir uma função a um componente, ela será implicitamente atribuída a cada interface e método exposto por esse componente.

Com a disponibilidade de atribuições de função no nível do método, você pode efetivamente ajudar a proteger componentes e interfaces que não foram projetados com a segurança em mente. No entanto, se os métodos em si não forem protegíveis com atribuições de função declarativa, talvez seja necessário fazer a verificação programática de funções. Geralmente, é uma boa ideia ter a segurança em mente ao decidir como considerar a funcionalidade do negócio através de métodos; caso contrário, você pode se encontrar 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 Security.

Segurança Programática

Em algumas circunstâncias, você pode querer colocar lógica de segurança em componentes enquanto ainda usa a segurança baseada em função. Pode ser que você não seja capaz — ou opte por não — 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 você pode ter um único método TransferMoney e querer restringir alguns chamadores, limitando a quantidade que eles podem transferir.

Nessas circunstâncias, você pode fazer verificação de funções 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 uma 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 onde ela for 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ções, você tem acesso programático a informações sobre todos os chamadores anteriores na sequência de chamadas para o seu componente. Isso é especialmente útil quando você deseja manter uma trilha de auditoria detalhada.

Para obter descrições de como fazer a verificação de papéis no código e como aceder a informações de contexto de chamada de segurança, consulte Segurança de Componente Programático.

Autorização e autenticação

Uma autorização significativa pressupõe que você esteja confiante de que os clientes são realmente quem dizem ser. A verificação da identidade do cliente é tratada separadamente por um serviço de autenticação. Sem autenticação, você está basicamente deixando os chamadores entrarem no sistema de honra. Para obter descrições sobre autenticação de cliente como afeta as aplicações COM+, consulte .

Projetando funções de forma eficaz

Limites de Segurança

Informações de Contexto de Chamadas de Segurança

Propriedade do Contexto de Segurança