Active DirectoryとLinuxのアカウントを統合する方法を書いたのでその応用で、Apacheと連携させたSubversionのアカウントと統合する方法を書いてみる。
この方法を用いることで、いちいち.htpasswordファイルのアカウントを管理する必要がなくなり管理の手間が省けるし、WindowsのSubversionのクライアントからはシングルサインオンが可能になってユーザーの利便性も向上します。
[前提条件のセットアップ]
まずは、Subversionのインストールをする。
# yum install subversion
# yum install mod_dav_svn
つぎに、Windows統合認証を、Apacheに組み込むためのモジュールをインストールする。CentOS6では、このモジュールをセットアップするためにEPELレポジトリを使用する必要がある。
# yum install mod_auth_ntml_winbind
[Apacheの設定]
SubversionをApacheと連携させるために必要なモジュールを読み込むための設定をする。
# vi /etc/httpd/conf/httpd.conf
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
ApacheのSubversionのモジュールの設定ファイルに下記の設定をすることで、Windows統合認証をすることができるようになる。
subverisonコマンドに組み込まれているブラウザなどの一部のブラウザは、NTLM認証を使用することができないので、mod_auth_ntlm_winbindに組み込まれているBasic認証の設定も付け加えてある。そのためパスワードが平文で流れてしまうのでSSLを強制する設定も付け加えてある。
# vi /etc/httpd/conf.d/subversion.conf
<Location /repos>
DAV on
SVNParentPath /var/www/svn
SVNAutoversioning On# SSLを強制する
SSLRequireSSL# NTLM認証を有効にする
NTLMAuthHelper “/usr/bin/ntlm_auth –helper-protocol=squid-2.5-ntlmssp”
PlaintextAuthHelper “/usr/bin/ntlm_auth –helper-protocol=squid-2.5-basic”AuthType NTLM
AuthName “NTLM Authenication”
NTLMAuth OnNTLMBasicRealm “NTLM Basic Auth”
NTLMBasicAuth ON
NTLMBasicAuthoritative OnRequire valid-user
# アクセスコントロール(例)
deny from all
allow from 192.168.0.0/24
allow from 127.0.0.0/8# HTTPのコマンドの制限
<LimitExcept GET PROFIND OPTIONS REPORT>
</LimitExcept></Location>
設定が終わったらApacheを再起動する。
# service httpd restart
[Subverionのレポジトリの作成]
cd /var/www/svn
svnadmin create レポジトリ名
chown -R apache.apache レポジトリ名
chcon -R -t httpd_sys_content_t レポジトリ名