GeekFactory

int128.hatenablog.com

Windows上のApache httpdでドメイン認証を使う

mod_auth_sspiを使うとドメインアカウントによる認証が可能です。例えば、Active Directory環境にあるSubversionリポジトリの認証をシングルサインオン化できたりします。

使い方はとても簡単です。

  1. ドメインに参加済みとします。
  2. Apache httpdをインストール済みとします。
  3. http://sourceforge.net/projects/mod-auth-sspi/ からアーカイブを入手します。
  4. アーカイブに含まれる mod_auth_sspi.so をApache httpdのモジュールディレクトリにコピーします。
  5. 設定ファイルに以下を追加し、Apache httpdを再起動します。
# サイト全体にWindows認証を適用する
# (最小限の設定です)
<Location />
  AuthType SSPI
  SSPIAuth On
  SSPIAuthoritative On
  Require valid-user
</Location>

mod_auth_ntlm_winbindより簡単に使えるのでおすすめです。アプリケーションや環境によって追加設定が必要ですが、大抵はググると見つかります。

ちなみに、CollabNet Subversion Edgeにはすでに mod_auth_sspi.so が入っていたりします。

Options of mod_auth_sspi

残念ながらmod_auth_sspiの公式ドキュメントはないようです。ソースコードから設定項目をまとめてみました。参考になりましたら幸いです。

Name Type Description
SSPIAuth flag set to 'on' to activate SSPI authentication here
SSPIOfferSSPI flag set to 'off' to allow access control to be passed along to lower modules if the UserID is not known to this module
SSPIAuthoritative flag set to 'off' to allow access control to be passed along to lower modules if the UserID is not known to this module
SSPIOfferBasic flag set to 'on' to allow the client to authenticate against NT with 'Basic' authentication instead of using the NTLM protocol
SSPIPackage string set to the name of the package you want to use to authenticate users
SSPIPackages string set to the name of the package you want to use to authenticate users
SSPIDomain string set to the domain you want users authenticated against for cleartext authentication - if not specified, the local machine, then all trusted domains are checked
SSPIOmitDomain flag set to 'on' if you want the usernames to have the domain prefix OMITTED, on = user, off = DOMAIN\user
SSPIUsernameCase string set to 'lower' if you want the username and domain to be lowercase, set to 'upper' if you want the username and domain to be uppercase, if not specified, username and domain case conversion is disabled
SSPIBasicPreferred flag set to 'on' if you want basic authentication to be the higher priority
SSPIMSIE3Hack flag set to 'on' if you expect MSIE 3 clients to be using this server
SSPIPerRequestAuth flag set to 'on' if you want authorization per request instead of per connection

(mod_auth_sspi.c in mod_auth_sspi-1.0.4-2.2.2.zip)