Мы — долго запрягаем, быстро ездим, и сильно тормозим.
www.lissyara.su —> статьи —> FreeBSD —> WWW —> mod_auth_external

mod_auth_external - авторизация пользователей в apache c помощью внешней программы

Автор: lissyara.


Понадобилось авторизовать в апаче народ по их системным учёткам. Причина простая - для пользователей хостинга - чтобы показывать им статистику использования расурсов. Ну да не суть. Собственные размышления ни к чему хорошему кроме ваяния на cgi и использования sudo не привели. Решение не понравилось ещё до попытки его реализации - поэтому поспрашивал в форуме - там пнули в верном направлении - у апача же есть куча модулей на все случаи жизни. Со второго модуля дело пошло =)

Поехали. Ставим модуль из портов - мне нужен для apache20:
srv$ cd /usr/ports/www/mod_auth_external2/
srv$ make install clean 

Ставим программу авторизации
srv$ cd /usr/ports/security/pwauth
srv$ make install clean

Рисуем конфиг модуля:
srv$ more /usr/local/etc/apache2/Includes/auth-external.conf
#
<IfModule mod_auth_external.c>
        AddExternalAuth         pwauth /usr/local/bin/pwauth
        SetExternalAuthMethod   pwauth pipe
</IfModule>

srv$ 

Раскомментируем строчку модуля в httpd.conf, перезапускаем апач:
srv$ apachectl graceful
srv$ 

Рисуем .htacces в директории доступ в которую надо авторизовать:
srv$ more stat/.htaccess
AuthName "View resource usage statistics"
AuthType Basic
AuthExternal pwauth
Require valid-user

srv$

Пробуем зайти - просит авторизацию - должны подойти системные имя пользователя и пароль.

Из минусов - по форку на каждую запрошенную страничку, если я всё верно понимаю... =(



размещено: 2009-03-25,
последнее обновление: 2009-03-25,
автор: lissyara


arksu, 2009-03-25 в 8:23:45

имхо форк на каждую страничку не жалко.
апач не ставят на высоконагруженные хостинг проекты ;)
туда больше nginx подходит

а вообще решение красивое получилось ;)



 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.035 секунд
Из них PHP: 19%; SQL: 81%; Число SQL-запросов: 77 шт.
Исходный размер: 12776; Сжатая: 4188