Resolvido.
Assumindo o seguinte:
- Domain name: "domain.com"
- Group name: "Internet Users"
- User name: "UserName"
- Path to group: "domain.com\OU1\OU2\Internet Users"
A consulta para verificar se o usuário é membro desse grupo seria:
(&(memberOf=CN=Group Name,OU=OU2,OU=OU1,DC=domain,DC=com)(SAMAccountName=UserName))
Assim, você teria que adicionar o seguinte ao squidGuard.conf para identificar os membros desse grupo ("% s" é o marcador de posição do squidGuard.conf para "o nome de usuário do cliente"):
src Internet_Users {
ldapusersearch ldap://dc.domain.com/DC=domain,DC=com?sAMAccountName?sub?(&(sAMAccountName=%s)(memberOf=CN=Internet Users,OU=OU2,OU=OU1,DC=domain,DC=com))
}
Advertência: não funcionará se estiver escrito acima, dando-lhe uma mensagem lacônica de "erro de sintaxe"; isso é porque (parte de) a instrução é tratada como uma URL, então você tem que escapar de caracteres especiais, como vírgulas e espaços em branco; a forma correta seria assim:
src Internet_Users {
ldapusersearch ldap://dc.domain.com/DC=domain,DC=com?sAMAccountName?sub?(&(sAMAccountName=%s)(memberOf=CN=Internet%20Users%2cOU=OU2%2cOU=OU1%2cDC=domain%2cDC=com))
}
Além disso, para evitar problemas com referências do Active Directory (às vezes um DC apenas redirecionará você para outro, mesmo se você estiver no mesmo domínio que gerencia), pode ser útil consultar um catálogo global:
src Internet_Users {
ldapusersearch ldap://gc.domain.com:3268/DC=domain,DC=com?sAMAccountName?sub?(&(sAMAccountName=%s)(memberOf=CN=Internet%20Users%2cOU=OU2%2cOU=OU1%2cDC=domain%2cDC=com))
}