Creo que es posible configurar Apache para usar SQL Server para la autenticación. Usted proporciona los parámetros de conexión de base de datos y una consulta para ejecutar. Supongo que el contrato es algo como:
Si la consulta devuelve algo, el usuario está autenticado y si los resultados de la consulta están vacíos, el usuario es desconocido.
¿Alguien sabe cómo puedo configurar esto?
Respuesta1
Me acabo de dar cuenta de esto para Apache 2.4 en Windows 2012. Creo que los cambios serían menores para Apache 2.2.
Descomente las líneas LoadModule necesarias en httpd.conf:
- authn_dbd_module
- authn_dbm_module
- módulo_dbd
Realice una conexión ODBC al servidor SQL:
Administrador de fuente de datos ODBC, DNS del sistema, Agregar.... Complete su información específica y recuerde el "Nombre" para más adelante.
Configurar la autenticación en 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>
Espero que te lleve en la dirección correcta.
Respuesta2
No sé si se admite mssql. Tal vez si lo agregas a pam y luego revisas eso. mod_auth_mysql es para mysql, mod_auth_pgsql para postgresql y mod_auth_dbi para interfaz de base de datos genérica.