Автор: | Jan Kneschke |
---|---|
Дата: | 2004-11-03 |
Версия: | 1.3 |
Суть
Модуль аутентификации предостовляет ...
lighttpd поддерживает оба метода аутентификации описанные в RFC 2617:
Basic метод передаёт имя пользователя и пароль по сети в открытом виде(закодированными в base64), что способствует возникновению проблемы безопастности в случае если соединение между клиентом и сервером не шифруется.
Digest метод передаёт только хешированную информацию, что значительно повышает конфидециальность аутентификационных данных в незащищённых сетях.
В зависимости от метода lighttpd позволяет использовать различные методы хранения данных необходимых для аутентификации.
для basic аутентификации:
для digest аутентификации:
Файл содержит строки с именами пользователей и паролями в открытом виде. Имя пользователя и пароль разделяются двоеточием. :
например: agent007:secret
Файл содержит строки с именами пользователей и зашифрованными с помощью crypt() паролями. Имя пользователя и пароль разделяются двоеточием.
например: agent007:XWY5JwrAVBXsQДля работы с такими файлами вы можете использовать программу htpasswd, входящую в состав apache.
$ htpasswd lighttpd.user.digest agent007
Файл содержит строки с именами пользователей, realm'ом и зашифрованными с помощью md5() паролями. Имя пользователя, realm и пароль разделяются двоеточием.
например: agent007:download area:8364d0044ef57b3defcfa141e8f77b65Для работы с такими файлами вы можете использовать программу htdigest, входящую в состав apache.
$ htdigest src/lighttpd.user.digest 'download area' agent007Использование md5sum также может использоваться для создания хэша пароля:
$ echo -n "agent007:download area:secret" | md5sum - 8364d0044ef57b3defcfa141e8f77b65 -
ldap backend обычно выполняет следующие действия для аутентификации пользователя
если четвёртый шаг проходит без ошибок, то пользователь считается авторизированным
## отладка # 0 для выключения, 1 для 'auth-ok' сообщений, 2 для подробных сообщений auth.debug = 0 ## тип backend'а # plain, htpasswd, ldap или htdigest auth.backend = "htpasswd" # имя файла в котором хранится информация необходимая # для plain аутентификации auth.backend.plain.userfile = "lighttpd-plain.user" ## для htpasswd auth.backend.htpasswd.userfile = "lighttpd-htpasswd.user" ## для htdigest auth.backend.htdigest.userfile = "lighttpd-htdigest.user" ## для ldap # знак $ в auth.backend.ldap.filter заменяется на # 'имя пользователя' из login диалога auth.backend.ldap.hostname = "localhost" auth.backend.ldap.base-dn = "dc=my-domain,dc=com" auth.backend.ldap.filter = "(uid=$)" ## ограничения # выставление ограничений: # # ( <left-part-of-the-url> => # ( "method" => "digest"/"basic", # "realm" => <realm>, # "require" => "user=<username>" ) # ) # # <realm> это значение которое будет показано в диалоговом окне # и также будет использоваться для digest-алгоритма и # должно совпадать с realm'ом в htdigest файле (если используется) # auth.require = ( "/download/" => ( "method" => "digest", "realm" => "download archiv", "require" => "user=agent007|user=agent008" ), "/server-info" => ( "method" => "digest", "realm" => "download archiv", "require" => "user=jan" ) )