Partilhar via


Entrada de controle de acesso

Uma entrada de controle de acesso (ACE) descreve os direitos de acesso associados a um identificador de segurança (SID) específico. O sistema operacional avalia as ACEs para calcular o acesso efetivo concedido a um determinado programa com base em suas credenciais. Por exemplo, quando um utilizador inicia sessão no computador e, em seguida, executa um programa, o programa utiliza as credenciais associadas à conta desse utilizador específico.

Quando um programa tenta abrir um objeto, o Windows compara as credenciais associadas ao programa com os controles de segurança associados ao objeto. Em seguida, o monitor de referência de segurança usa as informações da ACE para determinar se o programa deve ter permissão ou acesso negado ao objeto fornecido. É a ACE que determina o comportamento do subsistema de segurança.

A figura a seguir ilustra a entrada de controle de acesso.

Diagrama ilustrando a entrada de controle de acesso.

O subsistema de segurança utiliza vários tipos de ACES, incluindo os seguintes tipos. O membro tipo da estrutura ACE controla a interpretação da ACE. Os tipos definidos são:

  • ACCESS_ALLOWED_ACE_TYPE—esse tipo indica que a ACE especifica os direitos de acesso concedidos ao SID específico.

  • ACCESS_DENIED_ACE_TYPE indica que a ACE especifica os direitos de acesso que devem ser negados ao SID específico.

  • SYSTEM_AUDIT_ACE_TYPE indica que a ACE especifica o comportamento de auditoria.

  • SYSTEM_ALARM_ACE_TYPE indica que a ACE especifica o comportamento de alarme.

  • ACCESS_ALLOWED_COMPOUND_ACE_TYPE indica que a ACE está vinculada a um determinado servidor e à entidade que está representando.

Os tipos ACCESS_XXX são usados para controlar o acesso programático a um objeto. Os tipos SYSTEM_XXX são usados para controlar o comportamento de auditoria e alarme do subsistema de segurança quando o objeto é acessado. O comportamento real do subsistema de segurança é calculado combinando as informações de algumas ou de todas as ACEs associadas ao objeto.

Um driver pode construir uma ACE de ACCESS_ALLOWED_ACE_TYPE usando a rotina RtlAddAccessAllowedAce . Para adicionar os outros tipos de entradas ACE, os programadores de drivers devem construir as suas próprias funções uma vez que o WDK não fornece outras rotinas de suporte.