Subversionの認証にMac ServerのOpen Directoryを使う

前の記事ではOpen Directoryの設定まで。次は実際にUserを追加してOpen Directory + Apache + Subversionを連携させる(誰がcommitしたのか分かるようにする)。

Mac OS X Server 10.6.6 Snow Leopard(Mac mini)

Userを追加するのは下記記事を参考にした。

Leopard ServerのPodcast Producer--WebサービスとXgridを設定しちゃおう

Workgroup Managerを起動して、右上の鍵MarkをClick。rootの権限でlogin。Userを追加するのは直感的に出来ると思う。

User or Groupを追加したら、Subversionの設定。基本的にOpenLDAPを使う場合と変わらない・・・と思って設定してたらハマった。

Open Directoryを使う場合はDigest認証というのを使うらしい。Server Admin → Web → Setting → Modulesから、auth_digest_apple_moduleを有効にして、apple_digest_moduleを無効にするここに一緒に使ってはダメと書いてあったので。
※apple_digest_moduleだけ有効でOK

Web → Sites → (siteを選択) → RealmsからWorkgroup Managerで追加したUser or Groupを選択。Permissionの設定をしておく。これでSave。

次はTerminalから直接apacheの設定を変更。下の例では「DeveloperGroup」がSubversionにAccess可能なUserGroup。

$ sudo less /etc/apache2/sites/0002_any_8080_.conf

subversionのために追記したDirectiveに次のように追加。

<Location "/svn">
    DAV svn
    SVNListParentPath On
    SVNParentPath "/svnroot/Repository"
    <LimitExcept GET PROPFIND OPTIONS REPORT>
            Require group DeveloperGroup
    </LimitExcept>
</Location>

DAVの設定は、Server Adminで「保存」すると元に戻ってしまうので注意。

分かってしまえば簡単。ここまでの試行錯誤の道のりは長かった・・・。

ちなみにSubversionの設定は各Repositoryのconf folderで設定するみたい。svncreateしたUserの~/.subversion/configが/svnroot/Repository/hoge_project/conf/svnserve.confにcopyされる(と思う)。/etc/subversionがあるはずだ!と思ってしばらく探していた。

 

<Related Posts>

Mac ServerのOpen Directoryを設定(for Subversion)
Mac ServerにSubversionを設定してVersion管理
MacPortsをInstallして最新版のsubversionを取得