Сегодня на работе решал задачу выставить наружу из Apache внутренний ресурс, но так чтобы только свои могли пользоваться. Самое удобное, конечно, — поставить на входе авторизацию в домене Active Directory. На бодание с Apache у меня ушло 3 (!) часа. Видимо, сказывается мой слабый опыт в этой области.
На всякий случай плюхну решение сюда — вдруг кому сгодится. Изложение касается Apache 2.2.4.
Во-первых, в httpd.conf нужно подключить пару модулей:
LoadModule ldap_module modules/mod_ldap.so
LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
Во-вторых, там же, в теге <Directory>, относящемся к нужному ресурсу, указываем:
AuthType Basic
AuthBasicProvider ldap
AuthName "ResourceName"
AuthLDAPUrl ldap://adserver/DC=MYDCNAME1,DC=MYDCNAME2?sAMAccountName?sub?(objectClass=user)
AuthLDAPBindDN username@MYDCNAME1.MYDCNAME2
AuthLDAPBindPassword *********
Require valid-user
AuthzLDAPAuthoritative offгде:
MYDCNAME1 и MYDCNAME1 — составные части полного имени домена AD: MYDCNAME1.MYDCNAME1;
username — пользователь, имеющий в AD минимальные права;
adserver — имя или IP-адрес машины, на которой установлена AD.
Источники знаний:
http://httpd.apache.org/docs/2.2/mod/mod_authnz_ldap.html
http://httpd.apache.org/docs/trunk/mod/mod_authnz_ldap.html.en#activedirectory
http://ist.uwaterloo.ca/security/howto/2005-12-20/
http://www.ldapbrowser.com/download.htm
Замечания и предложения — приветствуются!