02.04.2016 22:43, Eugene Grosbein пишет:
Для проверки пользователей/групп из squid в Active Directory нет необходимости использовать Kerberos. Достаточно посылать запросы в AD по протоколу LDAP. На примере squid 3.2, для домена COMPANY.local и контроллера на адресе 192.168.1.3, в squid.conf: # Проверка пароля пользователя auth_param basic program /usr/local/adm/squid_ad_auth auth_param basic children 10 auth_param basic realm COMPANY auth_param basic credentialsttl 5 minutes acl ad_user proxy_auth REQUIRED # Проверка вхождения пользователя в группу InetPermitted external_acl_type ad_permitted ttl=300 %LOGIN /usr/local/adm/squid_ad_group acl ad_authorized external ad_permitted InetPermitted Скрипт /usr/local/adm/squid_ad_auth: #!/bin/sh base=COMPANY domain="dc=$base,dc=local" dom="$base.local" controller="192.168.1.3" user=squid passwordfile=/usr/local/adm/ad.pwd exec /usr/local/libexec/squid/basic_ldap_auth -R -b "$domain" \ -D "$user@$dom" -W "$passwordfile" -f sAMAccountName=%s -h "$controller" В домене нужен пользователь squid, чей пароль записан в /usr/local/adm/ad.pwd. Скрипт /usr/local/adm/squid_ad_group: #!/bin/sh base=COMPANY domain="dc=$base,dc=local" dom="$base.local" controller="192.168.1.3" user=squid passwordfile=/usr/local/adm/ad.pwd exec /usr/local/libexec/squid/ext_ldap_group_acl -R -b "$domain" \ -D "$user@$dom" -W "$passwordfile" \ -f "(&(objectclass=person)(sAMAccountName=%v)(memberof=cn=%a,$domain))" \ -h "$controller" "$@"
Спасибо, Евгений. Скрипт работает, но есть 2 нюанса: при каждом открытии браузера приходится вбивать login/pass (что очень неудобно, поэтому и использовал для этого kerberos, что бы передавало login/pass юзера автоматически), а так же не работает аутентификация для юзеров с русскими логинами (не спрашивайте кто такое придумал, мне оно тоже не нравится)