Delegação e falsificação de identidade
Em cenários cliente/servidor, é comum que um servidor chame outro servidor para realizar alguma tarefa em nome de um cliente. A situação em que um servidor recebe autoridade para agir em nome de um cliente é chamada delegação.
Do ponto de vista da segurança, colocam-se duas questões relativas à delegação:
- O que o servidor deve ter permissão para fazer ao agir em nome do cliente?
- Que identidade é apresentada pelo servidor quando chama outros servidores em nome de um cliente?
Para lidar com essas questões, a COM fornece a seguinte funcionalidade. O cliente pode definir um nível de representação que determina até que ponto o servidor será capaz de agir como o cliente. Se o cliente concede autoridade suficiente ao servidor, o servidor pode se passar por (fingir ser) o cliente. Ao representar o cliente, o servidor recebe acesso apenas aos objetos ou recursos que o cliente tem permissão para usar. O servidor, agindo como um cliente, também pode permitir que de ocultação mascarem sua própria identidade e projetem a identidade do cliente em chamadas para outros componentes COM.
Considere o cenário ilustrado pela figura anterior, onde A e B são processos em uma máquina diferente de C. O processo A chama B e B chama C. O cliente A define o nível de representação. B define a capacidade de camuflagem. Se A define um nível de representação que permite a representação, B pode representar A ao chamar C em nome de A. A identidade que é apresentada ao processo C será a identidade de A ou a identidade de B, dependendo se a camuflagem foi habilitada por B. Se a camuflagem estiver habilitada, a identidade apresentada ao processo C será a de A. Se o encobrimento não estiver habilitado, a identidade de B será apresentada a C.
Para obter mais informações, consulte os seguintes tópicos:
- de falsificação de identidade
- níveis de representação
- Cloaking