http 経由で複数のユーザー向けに SVN サーバーを設定する

http 経由で複数のユーザー向けに SVN サーバーを設定する

SVN 注釈機能は非常に強力で、特定のコード行の特定の機能について、誰を追跡すればよいかをすばやく把握できます。この機能は、ユーザーが http 経由で SVN にアクセスする場合、若干制限されます (ただし、それでも便利です)。この方法では資格情報は交換されないため、http を使用して変更をコミットする開発者によって変更された行には注釈に名前が表示されません。

質問は、開発者がサーバー上の SVN に何らかの認証情報を渡し、コミットを一意に識別する方法があるかどうかです。この環境で必要なのは、単に ID が存在することだけです。svn+ssh やファイル プロトコルなどの代替方法は利用できません。最後に、このサーバーは内部 LAN 上にあり、公開されていません。https に関するヒントも歓迎します。

SVN サーバーは Linux 上で Apache2 とともに実行されています。

答え1

Apache 設定で:

<Location /svn>
    DAV svn
    SVNPath /mnt/big/svn
    AuthType Basic
    AuthName "SVN Server"
    AuthUserFile /etc/apache2/svn.pass
    Require valid-user
    AuthzSVNAccessFile /etc/apache2/svn_authz

/etc/apache2/svn_authz には、誰が何にアクセスできるかを細かく管理する機能が含まれます。

[groups]
ops=user1,user2
it=user2,user3

[/]
* = rw

[/ops]
* =
@ops=rw

[/ro]
* = 
@ops = r
@it = r
user4 = rw

手元に ldap / active directory サーバーがある場合は、Apache 認証に AuthUserFile の代わりにそれを使用できます。

答え2

Apache 経由で SVN を実行しているため、Apache の組み込み認証方法を利用して、リポジトリへのアクセスを制御したり、リポジトリの変更を追跡したりできます。以下のサンプルは、htaccess スタイルの設定で動作します。

AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /path/to/user/list
Require valid-user

これは、htaccess ファイルまたは VirtualHost 構成ファイルで設定できます。

答え3

短い答え:mod_authz_svn

Apache + SVN + mod_autz_svn について少し触れた内容と、International PHP Conference '09 で発表したスライドを以下でご覧いただけます。http://superalbert.it/download/misc/PHPCon09_SVN_advanced.pdf

答え4

この回答では、開発者が Windows を使用しており、Active Directory ドメイン コントローラーがあることを前提としています。

Linux svnサーバーをドメインに参加させるには、次の手順に従ってください。記事

そこから、ApacheがKerberosを使用してADに認証するように設定してください。まずインストールしますmod_auth_kerb、認証のためにApache2をKerberosに接続します。Microsoftのドキュメントクライアントとサーバー間のセキュリティが心配な場合は、必ず SSL を実装してください。

完了すると、ユーザーは Windows パスワードを使用してログインできるようになり、アクティビティがユーザーに割り当てられます。

残念ながら、私は現在オフィス外におり、SVN サーバーにアクセスできないため、具体的な構成の詳細をお伝えすることはできません。

関連情報