## Настройка SAMS для авторизации пользователей SQUID в Active Directory как LDAP сервере

### ВНИМАНИЕ!!! Этот пункт необходим только если вы планируете работать с аутентификацией пользователей в Active Directory как LDAP сервере

### Установка ПО, необходимого для работы SAMS с Active Directory

Как известно, Active Directory (далее - AD) является реализацией MicroSoft LDAP сервера. Для работы с AD необходимо установить поддержку ldap для php (в linux это php-ldap.rpm) и собрать SQUID с хелпером авторизации пользователей SQUID squid_ldap_auth (обычно в дистрибутивах он присутствует).

### Конфигурация SAMS для работы с Active Directory

Для того, чтобы система могла авторизоваться в AD необходимо в файле sams.conf настроить поддержку AD:

LDAPSERVER=activedirectoryserver - имя или ip адрес сервера AD
LDAPBASEDN=domain.name - домен, поддерживаемый AD.
LDAPUSER=username - пользователь, входящий в группу AD администраторов домена, от имени которого SAMS будет работать с AD
LDAPUSERPASSWD=passwd - пароль
LDAPUSERSGROUP=Users - группа, содержащая пользователей в AD (обчно это Users)

### Проверка функционирования доступа к AD

Для настройки авторизации пользователей в AD необходимо в дереве настроек WEB интерфейса SAMS выбрать пункт "Администрирование SAMS", далее в нижнем фрейме нажать кнопку
В открывшемся диалоге выбираем способ авторизации пользователей "Active Directory". Далее нажимаем кнопку "Тестировать ответ PDC". В открывшемся окне будет выведен список пользователей, зарегистрированных в AD.

Если список пользователей не выведен, то проверьте настройки доступа к ldap в sams.conf, проверьте, является ли пользователь, от имени которого вы запрашиваете информацию в AD членом группы администраторов домена.

далее запускаем хелпер и проверяем как он авторизует пользовател в AD:

/usr/lib/squid/squid_ldap_auth -u cn -b "cn=Users,dc=your,dc=domain" activedirectoryserver
далее вводим:
иямпользователя пароль (через пробел)
и смотрим, что выдает хелпер:
OK - авторизация пользователя в AD прошла успешно
ERR - ошибка авторизации пользователя в AD

если вы получили ошибку авторизации - читаем man squid_ldap_auth и документацию по авторизации squid в AD в интернете. Есть различные способы настроить авторизацию пользователей SQUID в AD, всех их здесь я приводить небуду.

### Конфигурируем SQUID на работу с авторизацией в Ad

в файл /etc/squid/squid.conf добавляем строки:
К сожалению, мне удалось осуществить при помощи хелпера squid_ldap_auth только basic авторизацию. Это означает, что броузер, при первом запросе пользователя, всегда запращивает login и пароль.
auth_param basic program /usr/lib/squid/squid_ldap_auth -u cn -b "cn=Users,dc=your,dc=domain" activedirectoryserver
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours