Partilhar via


Desativando a segurança de ativação

Normalmente, a ativação usa configurações de segurança padrão. No entanto, você pode controlar a segurança de ativação especificando uma estrutura COAUTHINFO , que é um membro da estrutura COSERVERINFO que é passada para as funções de ativação. Se o cliente especificar um nível de autenticação de RPC_C_AUTHN_LEVEL_NONE na estrutura de COAUTHINFO, a autenticação não será tentada. Caso contrário, a ativação segura será tentada e, se a autenticação falhar, a ativação falhará.

Se o cliente não especificar um explícito COAUTHINFO estrutura e, em vez disso, definir o ponteiro para NULL, COM tentará autenticar o cliente. Se não for possível autenticar o cliente, o COM verificará o descritor de segurança de permissão de inicialização para ver se há uma NULL DACL ou uma ACL que permita o acesso a Todos. Se essa verificação for bem-sucedida, o servidor será iniciado. Portanto, mesmo que o cliente não especifique uma estrutura COAUTHINFO, pode ocorrer uma ativação insegura quando o servidor o permitir.

Observação

Para permitir que usuários de rede não autenticados executem um aplicativo COM, as funções do aplicativo devem incluir o usuário anônimo. A partir do Windows Server 2003, por padrão, o usuário anônimo não está incluído no grupo Todos.

 

Por que um cliente gostaria de desativar a segurança de ativação explicitamente, mesmo que a ativação não segura acabe ocorrendo se o servidor permitir? Porque desativar explicitamente a segurança de ativação aumenta o desempenho quando o cliente não quer ou precisa de verificações de segurança.

As seguintes coisas devem ser feitas para desativar explicitamente a segurança de ativação:

  • O cliente deve especificar um nível de autenticação de RPC_C_AUTHN_LEVEL_NONE na estrutura de COAUTHINFO que é membro da estrutura de COSERVERINFO fornecida à função de ativação.
  • O cliente deve especificar um nível de representação de RPC_C_IMP_LEVEL_IMPERSONATE na estrutura COAUTHINFO que é um membro da estrutura COSERVERINFO fornecida à função de ativação. Se esse valor não for repassado, você receberá RPC_S_SERVER_UNAVAILABLE.
  • O servidor deve especificar Todos para Permissões de inicialização padrão. A maneira recomendada de executar essa tarefa é usáDcomcnfg.exe da seguinte maneira:
    1. Execute Dcomcnfg.exe.
    2. Na página Aplicativos, selecione o aplicativo que representa o servidor. Clique no botão Propriedades (ou clique duas vezes no aplicativo selecionado).
    3. Na página de propriedades Segurança, clique no botão Usar permissões de inicialização personalizadas.
    4. Clique no botão Editar na área Permissões de Inicialização.
    5. Na caixa de diálogo Permissões de Valor do Registro, clique no botão Adicionar.
    6. Selecione a entrada para Todos na caixa de listagem.
    7. Na caixa de listagem Tipo de de Acesso, escolha Permitir Inicialização.
    8. Clique no botão OK.

Observação

No Windows Server 2003, o recurso de autenticação para o aplicativo do sistema COM+ inclui o valor EOAC_DISABLE_AAA. Esse valor, que desabilita ativações como ativador (AAA), é usado na chamada deCoInitializeSecurity doao iniciar o aplicativo do sistema. Definir o recurso de autenticação como EOAC_DISABLE_AAA permite que um aplicativo executado sob uma conta privilegiada (como LocalSystem) ajude a impedir que sua identidade seja usada para iniciar componentes não confiáveis.

 

Desativar segurança de chamadas