home ホーム search 検索 -  login ログイン  | reload edit datainfo version cmd icon diff delete  | help ヘルプ

日記/2009/02/22/Subversionの認証で整理メモ

日記/2009/02/22/Subversionの認証で整理メモ

日記 / 2009 / 02 / 22 / Subversionの認証で整理メモ
id: 181 所有者: msakamoto-sf    作成日: 2009-02-22 11:39:55
カテゴリ: Subversion 

Tracをインストールしようとしていたのだけれど、Subversionの設定絡みで頭がこんがらがってきた。
特にSubversionの認証がよく分からない。svnserve.confに書いたり、httpd.confのAuthzSVNAccessFileに書いたりとよく分からなくなってしまった。

基本に戻ってSubversionのアーキテクチャを再確認してみる。
http://subversion.bluegate.org/doc/ch01s04.html
上のURLの末尾のファイル名は今後変わるかも。tigrisのSubversionページ(http://subversion.tigris.org/)のHelpで"Subversion Book"リンクをクリックすれば大元のページに行けます。

で、上記URL掲載の図を見るとSVNクライアントがリポジトリシステムにアクセスするルートが3種類あることが分かる。

  1. ローカルファイルシステム経由
  2. "svn://"によるsvnserver経由
  3. WebDAV経由

ここで「認証」が必要になってくるのはどこかというと

  1. svnserver経由
  2. WebDAV経由

まずsvnserver経由だけれど、ソースを見るとやっぱりというか何というか、svnserve/server.c の中でauthz(パスペース認証)の読み込みとチェックをしている箇所があった。ユーザ認証とパスベースの許可についてはsvnserver側で勝手に設定ファイルを読み込んでくれているみたい。

次にWebDAV経由。こちらは mod_authz_svn/mod_authz_svn.c の中で AuthzSVNAccessFile ディレクティブ値を取得し、何段か関数を経由してsvn_repos_authz_check_access() を呼んでいる。パラメータをざっと見ると、ユーザ名がrequest_rec構造体のuserメンバを使っている。これはApacheのユーザ認証をパスしたユーザ、つまりBasicなりDigest認証なりをかけてパスしたユーザ名が入る。

まとめるとこんな感じ?

svnserve経由 WebDAV経由
インターフェイス svnserve/{main,serve.c} mod_dav_svn/mod_dav_svn.c
ユーザ情報 svnserver.conf経由 ApacheによるBasic/Digestなど認証経由
(同)取得モジュール svnserve/{main,serve.c} (Apacheモジュール)
パスベース認証情報 svnserver.conf経由 mod_authz_svnのAuthzSVNAccessFileディレクティブ経由
(同)取得モジュール svnserve/{main,serve.c} mod_authz_svn/mod_authz_svn.c

ユーザ情報とかパスベース認証情報が、アーキテクチャ上の最終段、リポジトリシステムではなくて、クライアントとの接続インターフェイス部分で操作している為に WebDAV経由/svnserve経由でそれぞれ設定方法が分かれてしまったのが混乱の原因だったのかも。
WebDAV経由だとsvnserver.confが使われないのが最初分かりづらかったんだけど、まぁ確かにsvnserver.confはsvnserver用の設定ファイルなんだから、WebDAV経由は関係ないよな、と納得。

最後に当然の前提だったのだけれど、SubversionのコンパイルにApacheのソースが必要というのは、APRを使うのもあるけど、mod_dav_svnとかmod_authz_svnというApacheモジュールのソースがSubversionのソースツリーに最初から含まれているのもあるのかも。Win用のバイナリとかはApache2.0用/2.2用と二つに分かれてて、なんでかなぁと思ったのだけれどApacheライブラリやモジュールの仕様に引きずられるので、そういった事情なのだろう。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2009-02-22 12:25:25
md5:d63a55402dd0b3b6691baf518b63fe53
sha1:46df87e70f68149570e7b82dc30661d025470acb
コメント
コメントを投稿するにはログインして下さい。