Я считаю, что можно настроить Apache на использование SQL Server для аутентификации. Вы предоставляете параметры подключения к БД и запрос для выполнения. Я предполагаю, что контракт выглядит примерно так:
Если запрос возвращает что-либо, пользователь аутентифицирован, а если результаты запроса пусты, пользователь неизвестен.
Кто-нибудь знает, как это настроить?
решение1
Я только что понял это для Apache 2.4 на Windows 2012. Думаю, для Apache 2.2 изменения будут незначительными.
Раскомментируйте необходимые строки LoadModule в httpd.conf:
- модуль_аутн_бд_
- модуль_аутн_бдм
- dbd_модуль
Создайте подключение ODBC к SQL Server:
Администратор источника данных ODBC, Системный DNS, Добавить..., введите необходимую информацию и запомните «Имя» для дальнейшего использования.
Настройте аутентификацию в Apache:
DBDriver odbc
DBDParams "datasource=<Name here>,user=...,password=..."
<Location /secure>
AuthType Basic
AuthName "Secure Area"
AuthBasicProvider dbd
Require valid-user
AuthDBDUserPWQuery "SELECT '$apr1$' + PasswordSalt + '$' + Password FROM <your table> WHERE UserName = %s"
</Location>
Надеюсь, это поможет вам двигаться в правильном направлении.
решение2
Я не знаю, поддерживается ли mssql. Может быть, если вы добавите его в pam, а затем пройдете через это. mod_auth_mysql — для mysql, mod_auth_pgsql — для postgresql, а mod_auth_dbi — для generic db intefrace.