Usuário Interativo
O usuário interativo é o usuário que está conectado ao computador em que o servidor COM está em execução. Se a identidade estiver definida como o usuário interativo, todos os clientes usarão a mesma instância do servidor se o servidor registrar sua fábrica de classes como multiutilização. Se nenhum usuário estiver conectado, o servidor não será executado. Se o servidor tiver uma GUI (interface gráfica do usuário) que o cliente precisa ver, você deverá usar o usuário interativo para a identidade do servidor. No entanto, escolher essa identidade traz alguns riscos de segurança porque o servidor é executado sob a identidade do usuário conectado sem o conhecimento ou consentimento do usuário conectado. Além disso, um aplicativo de serviço não pode exibir uma interface do usuário. Para obter mais informações, consulte de Serviços Interativos.
Se um servidor COM estiver configurado para ser executado como o usuário interativo, em um ambiente de serviços de terminal, o servidor será iniciado na sessão interativa que corresponde à identidade do usuário do cliente. No entanto, o aplicativo cliente pode usar o moniker de sessão para fazer referência a um objeto fornecido pelo servidor em uma sessão que não corresponde à identidade do cliente. Quando isso é usado, o aplicativo cliente pode especificar qualquer sessão, caso em que o servidor será executado como o usuário que possui a sessão, não o usuário de inicialização. As permissões de acesso padrão nesse cenário não permitiriam que o usuário inicial chamasse métodos no servidor. No entanto, os seguintes riscos de segurança permanecem:
- Se o servidor COM expor interfaces que não são controladas pelo COM, como portas TCP, pipes nomeados, portas LPC, seções de memória compartilhada e assim por diante, elas poderão ser usadas pelo usuário inicial para influenciar o servidor. Os objetos COM configurados para serem executados como o usuário interativo devem reduzir essa superfície de ataque o máximo possível.
- Os objetos COM são gratuitos para definir suas próprias permissões de acesso. Se o objeto definir permissões de acesso, em seu registro AppID ou chamando CoInitializeSecurity, para permitir o acesso do usuário inicializado, o usuário poderá iniciar o servidor para ser executado como outro usuário e, em seguida, acessar o objeto.
Tópicos relacionados
-
iniciando de usuário