Динамическая проверка подлинности Apache через PHP - PullRequest
2 голосов
/ 06 июня 2011

Я хотел бы реализовать процесс динамической аутентификации с использованием Apache и PHP.Мой текущий проект разбит на две части:

  1. У меня работает классический проект LAMP, где у пользователей уже есть логин / пароль, который я использую для предоставления им доступа к другой части моей системы..

  2. Некоторые документы (Текст, Office, ...) размещаются на отдельном сервере DAV (один и тот же сервер, но разные домены), и пользователи могут редактировать их непосредственно из своей программы Office (Word)., Excel ...) с использованием комбинации Dav / ActiveX / IE.

Я хотел бы разрешить пользователям, зарегистрированным в моей первой системе, использовать другой метод DAV в зависимости от их текущего права (сохраненов БД)

Например, г-н Х может иметь доступ к документу А методом PUT / GET, но не имеет доступа к документу Б.

Обычно я решаю проблему такого рода, используяАутентификация PHP, но, насколько мне известно, моя аутентификация произошла в приложении Microsoft Office.Office напрямую «обсуждает» с Apache, поэтому мне, конечно, нужно переопределить файл .htaccess, например.У меня слишком много пользователей, чтобы хранить их вручную в .htaccess (~ 10K) и много файлов на сервере DAV (~ 1K).Более того, права пользователей могут со временем меняться.

Существует ли способ создания динамических файлов htaccess?Или добавить какие-то обработчики, чтобы «сказать» Apache, разрешить или запретить имя пользователя / пароль для определенных файлов?

Ответы [ 2 ]

2 голосов
/ 15 мая 2012

Все, что вам нужно, это http://modauthmysql.sourceforge.net/

. Вы можете настроить ваш apache с помощью .htaccess для аутентификации в базе данных mysql.Конечно, вы можете использовать существующие таблицы Mysql с пользователями в нем.

Вот моя рабочая конфигурация:

    <Directory "/u05/data">
            AllowOverride All

            Order Allow,Deny
            Allow from All
            Deny from None

            AddType application/octet-stream .rar
            AuthName "Download zone - secured"
            AuthType Basic

            AuthMYSQLEnable on
            AuthMySQLUser http_auth
            AuthMySQLPassword http_auth
            AuthMySQLDB mydatabase
            AuthMySQLUserTable users
            AuthMySQLNameField user_name
            AuthMySQLPasswordField user_password
            AuthMySQLPwEncryption crypt

            require valid-user
    </Directory>
0 голосов
/ 20 июня 2011

Полагаю, вы могли бы установить php-файл cron, который запрашивает базу данных, извлекает имена пользователей и их разрешения и создает файл htacess на основе этой информации.Сценарий должен иметь права на запись в этот файл htacess, поэтому я предлагаю вам поместить его в безопасное место вне веб-проектов и вне каталога www.

...