web-dev-qa-db-ja.com

LDAPおよびActive Directoryを使用したSVN認証

LDAP/Active DirectoryでSVN認証を機能させるのにいくつか問題があります。私のSVNインストールは正常に機能しますが、Apache vhostでLDAPを有効にした後、ユーザーを認証することができません。

選択したLDAPブラウザーを使用してActive Directoryに正常に接続できますが、これを機能させることができないようです。

  • SVNは/ var/local/svnにセットアップされます
  • サーバーはsvn.domain.localです
  • テストの場合、私のリポジトリは/ var/local/svn/testです

私のvhostファイルは次のとおりです。

<VirtualHost *:80>
        ServerAdmin [email protected]
        ServerAlias svn.domain.local
        ServerName svn.domain.local
        DocumentRoot /var/www/svn/

        <Location /test>
                DAV svn
                #SVNListParentPath On
                SVNPath /var/local/svn/test
                AuthzSVNAccessFile /var/local/svn/svnaccess
                AuthzLDAPAuthoritative off
                AuthType Basic
                AuthName "SVN Server"
                AuthBasicProvider ldap
                AuthLDAPBindDN "CN=adminuser,OU=SBSAdmin Users,OU=Users,OU=MyBusiness,DC=domain,DC=local"
                AuthLDAPBindPassword "admin password"
                AuthLDAPURL "ldap://192.168.1.6:389/OU=SBSUsers,OU=Users,OU=MyBusiness,DC=domain,DC=local?sAMAccountName?sub?(objectClass=*)"
                Require valid-user
        </Location>

        CustomLog /var/log/Apache2/svn/access.log combined
        ErrorLog /var/log/Apache2/svn/error.log
</VirtualHost>

私のerror.logには、バインドエラーが表示されないようです(他の場所を探しているのでしょうか?)。

[Thu Jun 21 09:51:38 2012] [error] [client 192.168.1.142] user alex: authentication failure for "/test/": Password Mismatch, referer: http://svn.domain.local/test/

「AuthLDAPURL」の最後に、TLSとNONEを使用している人を見ましたが、私の場合はどちらも役に立たないようです。

私はLDAPモジュールをロードし、私が知っている限りチェックを行ったので、どんな助けでも大歓迎です。ありがとう

4
Alex Holsgrove

セットする REFERRALS offサーバー内/etc/ldap/ldap.conf そしてさらに試みる。

そして、URL行に「NONE」を追加してみてください。

AuthLDAPURL "ldap://192.168.1.6:389/OU=SBSUsers,OU=Users,OU=MyBusiness,DC=domain,DC=local?sAMAccountName?sub?(objectClass=*)" NONE

Ldapsearchを試してください。 .ldaprcをホームディレクトリに追加します。

Host 192.168.1.6
BASE DC=domain,DC=local
BINDDN CN=adminuser,OU=SBSAdmin Users,OU=Users,OU=MyBusiness,DC=domain,DC=local

これを使って:

ldapsearch -D "CN=adminuser,OU=SBSAdmin Users,OU=Users,OU=MyBusiness,DC=domain,DC=local" -W sAMAccountName=user

BindDNパスワードを要求します。

3
Diego F. Durán

Diegoがポイントを獲得し、最終的に機能するようになりました。それは私の仮想ホストのパラメータの順序を変更した場合かもしれませんが、これは私にとってうまくいったものです。また、LDAP GUIツールから直接管理ユーザーDNをコピーして、正しいバインドの詳細を確認しました。

<VirtualHost *:80>
        ServerAdmin [email protected]
        ServerAlias svn.domain.local
        ServerName svn.domain.local
        DocumentRoot /var/www/svn/

        <Location />
                DAV svn
                SVNParentPath /var/local/svn/
                SVNListParentPath On
                AuthBasicProvider ldap
                AuthType Basic
                AuthzLDAPAuthoritative off
                AuthName "SVN Server"
                AuthLDAPURL "ldap://192.168.1.6:389/DC=domain,DC=local?sAMAccountName?sub?(objectClass=*)" NONE
                AUTHLDAPBindDN "CN=admin,OU=Admin Users,OU=Users,OU=MyBusiness,DC=domain,DC=local"
                AuthLDAPBindPassword ######
                require valid-user
        </Location>
</VirtualHost>

それが他の誰かを助けることを願っています!

2
Alex Holsgrove

それはあなたの質問に直接答えないかもしれませんが、 Subversion Edge を使用することを検討しましたか?使用は無料です(AGPLv3ライセンス)。

これを見るとわかるように、 スクリーンショット LDAP統合の設定は非常に簡単です。 SSPIモジュールをインストールすることもできますが、これには手作業が必要です。

1
Stefan Egli