配置 Apache 以使用 SQL Server 身份验证

配置 Apache 以使用 SQL Server 身份验证

我相信可以将 Apache 配置为使用 SQL Server 进行身份验证。您提供 DB 连接参数和要运行的查询。我认为合同是这样的:

如果查询返回某些内容,则表示用户已经通过身份验证,如果查询结果为空,则表示用户未知。

有人知道我该如何配置它吗?

答案1

我刚刚在 Windows 2012 上为 Apache 2.4 解决了这个问题。我认为对于 Apache 2.2 来说变化很小。

取消注释 httpd.conf 中必要的 LoadModule 行:

  • authn_dbd_模块
  • authn_dbm_模块
  • dbd_模块

与 SQL Server 建立 ODBC 连接:
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 用于通用 db intefrace。

相关内容