Compartilhar via


Implementar um AppContainer

Um AppContainer é implementado adicionando novas informações ao token de processo, alterando SeAccessCheck() para que todos os objetos de ACL (lista de controle de acesso) herdados e não modificados bloqueiem solicitações de acesso de processos AppContainer por padrão e objetos re-ACL que devem estar disponíveis para AppContainers.

O processo

Comece adicionando novas informações para o token de processo. Em seguida, altere SeAccessCheck() para que todas as ACLs herdadas e não modificadas bloqueiem as solicitações de acesso dos processos do AppContainer por padrão. Por fim, re-ACL recursos que devem estar disponíveis para AppContainers

O SID appContainer é um identificador exclusivo persistente para o appcontainer. Os SIDs de funcionalidade concedem acesso a grupos de recursos a grupos de AppContainers. Um AppContainerNumber é um DWORD transitório usado para distinguir entre AppContainers. No entanto, ele não deve ser usado como uma identidade para o AppContainer.

Para permitir que um único AppContainer acesse um recurso, adicione seu AppContainerSID à ACL desse recurso.

Para permitir que vários AppContainers específicos acessem um recurso, adicione todos os seus AppContainerSIDs à ACL desse recurso.

Para gerenciar grupos de permissões, crie um SID de funcionalidade (um GUID) e coloque esse SID de funcionalidade em todos os recursos a serem concedidos. Em seguida, adicione o SID de funcionalidade ao token de processo.

Para permitir que todos os AppContainers acessem um recurso, adicione o SID ALL APPLICATION PACKAGES à ACL desse recurso. Isso funciona como um curinga.

Tanto AppContainerSID quanto CapabilitySID dão suporte a máscaras de acesso em ACE (Entradas de Controle de Acesso). Defina conforme apropriado.