@UnDr3aD:
O squid está buscando no AD com o seguinte comando:
/usr/local/libexec/squid/basic_ldap_auth -v 3 -b dc=dominio,dc=intra -D cn=pfsense,cn=Users,dc=dominio,dc=intra -w password -f 'sAMAccountName=s%' -u uid -P 192.168.0.2:389
Adicionei a opção -d (debug) ao comando acima e fiz um teste com o usuario "teste1". Ele vai no AD buscar pelo usuário e retorna o seguinte:
basic_ldap_auth.cc(691): pid=29456 :user filter 'sAMAccountName=s', searchbase 'dc=dominio,dc=intra'
basic_ldap_auth.cc(713): pid=29456 :Ldap search returned nothing
ERR Success
todavia, fazendo uma busca pelo usuário "teste1" no AD retorna as informações do usuario em questão:
[2.3.2-RELEASE][root@pfSense.phoenix.intra]/root: ldapsearch -x -LLL -D 'CN=pfsense,CN=Users,DC=dominio,DC=intra' -W -h 192.168.0.2:389 -b 'DC=dominio,DC=intra' -s sub '(sAMAccountName=teste1)'
Enter LDAP Password:
dn: CN=Teste,OU=Usuarios Comuns,OU=EMPRESA,DC=dominio,DC=intra
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: user
cn: Teste
sn:
givenName: Teste
distinguishedName: CN=Teste,OU=Usuarios Comuns,OU=EMPRESA,DC=dominio,DC=intra
instanceType: 4
whenCreated: 20160702140223.0Z
whenChanged: 20160825140553.0Z
displayName: Teste
uSNCreated: 12974
memberOf: CN=Financeiro,OU=Grupos,OU=EMPRESA,DC=dominio,DC=intra
uSNChanged: 35426
name: Teste
objectGUID:: cJpFXaM3c0yvtumaKsBKTQ==
userAccountControl: 66048
badPwdCount: 0
codePage: 0
countryCode: 0
badPasswordTime: 0
lastLogoff: 0
lastLogon: 131119507663666927
pwdLastSet: 131166075531594871
primaryGroupID: 513
objectSid:: AQUAAAAAAAUVAAAAdcEfaqxTjW747u9sWgQAAA==
accountExpires: 9223372036854775807
logonCount: 2
sAMAccountName: teste1
sAMAccountType: 805306368
userPrincipalName: teste1@dominio.intra
objectCategory: CN=Person,CN=Schema,CN=Configuration,DC=dominio,DC=intra
...
ou seja, o squid está se conectando ao AD mas não está conseguindo achar o usuário identificado pelo login e senha.
enquanto isso, no navegador, o squid fica em looping pedindo autenticação e nunca autentica!
Alguma dica de como resolver?
Depois de muuuitos testes consegui perceber que o problema da autenticação estava, na verdade, na variável que o squid busca o usuário no AD => sAMAccountName=s% <=
De alguma forma o login digitado no prompt do navegador não estava chegando corretamente nesse termo.
Então, com foco no local certo, consegui identificar que o "s%" deveria ser "%s".
Uma simples inversão de caracteres me lascou esses últimos 2 dias! kkkkk
Achei estranho isso por que - se eu não estiver redondamente enganado novamente - esse termo já estava dessa forma na configuração padrão do squid e, ao ver rapidamente isso passa desapercebido!