O que os desenvolvedores de aplicativos e serviços precisam saber sobre grupos
Ao desenvolver um aplicativo ou serviço, você pode usar grupos para delegar administração ou controlar o acesso ao aplicativo ou serviço como um todo ou parte. Por exemplo, um aplicativo pode controlar quem pode executar várias operações administrativas. Para fazer isso, crie ACEs que concedem direitos de acesso especificados aos grupos apropriados. É uma boa prática de programação ter uma ACE que concede acesso a um grupo do que ter várias ACEs que concedem acesso a usuários individuais ou computadores.
É recomendável que os aplicativos usem as seguintes diretrizes ao usar grupos:
- Não crie dependências em grupos embutidos em código, o que pode criar complicações se o grupo for excluído ou movido.
- Evite usar grupos internos, a menos que a função do grupo forneça as necessidades específicas para o aplicativo. Por exemplo, não exija que um usuário seja membro do grupo Administradores apenas para fornecer ao usuário permissão para criar uma conta de computador. Isso fornece ao usuário permissões e privilégios que talvez ele não precise, o que pode causar vulnerabilidade de segurança. Em vez disso, você deve criar um novo grupo de segurança que tenha as permissões específicas necessárias e adicionar o usuário a esse novo grupo.
- Ao criar novos grupos, lembre-se das seguintes recomendações:
- Proteja o grupo definindo ACEs que controlam quem pode adicionar ou remover membros.
- Use grupos globais se eles forem usados para controle de acesso em objetos nos Serviços de Domínio Active Directory.
- Use grupos universais somente se necessário (os dados do membro são necessários globalmente usando o catálogo global; o grupo pode conter qualquer usuário/grupo). Se você usar grupos universais, coloque grupos globais no grupo universal e adicione/remova usuários do grupo global. Evite alterações excessivas em grupos universais para eficiência de replicação.
- Não use associação de grupo para controle de acesso. Em vez disso, use uma ACE e controle o acesso fazendo com que o sistema execute uma verificação de acesso.
Para controlar o acesso a operações que não se encaixam nos direitos de acesso predefinidos para objetos nos serviços de Domínio Active Directory, use o recurso de direitos de acesso de controle de controle de acesso no Windows 2000. Para obter mais informações, consulte ADS_RIGHTS_ENUM.
Para usar um direito de acesso de controle para controlar o direito de executar uma operação
- Crie um direito de acesso de controle que defina o tipo de acesso ao aplicativo ou serviço. Para obter mais informações, consulte Controlar direitos de acesso.
- Crie um objeto nos Serviços de Domínio Active Directory que represente o aplicativo, serviço ou recurso.
- Adicione ACEs de objeto à DACL no descritor de segurança de objeto para conceder ou negar a usuários ou grupos o direito de acesso de controle nesse objeto. Para obter mais informações, consulte Definindo direitos de acesso em um objeto.
- Quando um usuário tenta executar a operação protegida, seu aplicativo ou serviço usa a função AccessCheckByTypeResultList para determinar se o direito de acesso de controle é concedido ao usuário. Para obter mais informações, consulte Verificando um direito de acesso de controle na ACL de um objeto.
- Com base no resultado da verificação de acesso no objeto, seu aplicativo ou serviço pode conceder ou negar ao usuário acesso ao aplicativo ou serviço.
Um aplicativo de serviço também poderia criar um grupo cujos membros seriam as várias instâncias de serviço. Por exemplo, um serviço com instâncias instaladas em vários computadores em toda a empresa pode ter um arquivo de log comum no qual todas as instâncias de serviço gravam. O programa de instalação do serviço cria o arquivo de log e usa uma DACL para conceder acesso somente aos membros de um grupo. Os membros do grupo seriam as contas de usuário sob as quais as várias instâncias de serviço estão sendo executadas ou, se os serviços forem executados sob a conta LocalSystem, os membros seriam as contas de computador dos servidores host.