Windows で Redmine と Subversion の認証連携をする ついでにLDAP設定も少し

  • 6
    Like
  • 0
    Comment
More than 1 year has passed since last update.

前提

セキュリティ的にあんまりうるさくないところ(イントラの中とか)

  • Bitnami Redmine などで Redmine がセットアップされている
  • ApacheはBitnami付属ではなく、2.2を入れ直すのでBitnamiのredmineApacheサービスを停止しておく

入れるもの

Apache 2.2の準備

てきとーにBitnamiのapache2ディレクトリを別名にリネームし、先に落としてきたApache2.2をapache2ディレクトリに置き換える。
httpd.confとかを2.2のディレクトリにコピーして、動かないモジュールを外していく
ついでにmod_svnを入れておく。
LoadModule php5_module "C:/Bitnami/REDMIN~1.0-0/php/php5apache2_4.dll"は動かないので、LoadModule php5_module "C:/Bitnami/REDMIN~1.0-0/php/php5apache2_2.dll"に書き換えておく。
Require all deniedRequire all grantedはApache-2.4の設定方法なので、Order allow,deny allow from allに書き直していく

Apache-2.2の設定ファイルを元にBitnamiのRedmineやらを登録していく方が楽かもしれない。

Strawberry Perl の準備(mod_perl)

http://people.apache.org/~stevehay/ から mod_perl-2.0.8-strawberryperl-5.16.3.1-32bit.zip を落としてくる
C:\Strawberryと<Redmine Apacheの場所>にStrawberry, Apache2の中身を置く

httpd の確認

管理者権限でcmd.exeを立ち上げて、Redmine Apache の場所に移動、bin\httpd.exe で実行してエラーが出ないことを確認する

Redmine.pm の準備

C:\Strawberry\perl\site\lib\ApacheにRedmine.pm を置いておく

httpd.conf に以下の設定を追加する
```
LoadFile "D:/Perl/bin/perl510.dll"
LoadModule perl_module modules/mod_perl.so

PerlLoadModule Apache::Redmine

DAV svn

SVNParentPath "C:\Svn" 

SVNListParentPath On

AuthType Basic
AuthName "Subversion repository" 
Require valid-user

PerlAccessHandler Apache::Authn::Redmine::access_handler
PerlAuthenHandler Apache::Authn::Redmine::authen_handler

RedmineDSN "DBI:mysql:database=xxxxxx;host=localhost" 
RedmineDbUser "xxxxxx" 
RedmineDbPass "xxxxxx"
AuthUserFile htpasswd


```

xxxxxの部分はredmineのdatabase.ymlから適当にコピー
htpasswdは無いとなぜか動かないのでダミーで置いておく

なんか、SVNの読み込みは誰でもできるようになってる気がするので、後で会社の設定を確認してこよう・・・

Redmine の設定

管理→リポジトリの
「リポジトリ管理用のWebサービスを有効にする」をチェックし、APIキーをキーの生成で生成する

reposman.rb の設定

まず、reposman.rb実行用のバッチファイルを作成する

reposman.bat
@echo off

set REDMINE_HOST=http://localhost/redmine
set SVN_DIR=C:\Svn
set SVN_URL=http://localhost/svn
set KEY=<上で生成したキー>

set OLD_CD=%CD%
cd /D %~dp0


rem 環境変数のセット
call C:\Bitnami\redmine-2.5.0-0\scripts\setenv.bat

ruby reposman.rb --svn-dir %SVN_DIR% --redmine-host %REDMINE_HOST% --key %KEY% --url %SVN_URL% --test

cd %OLD_CD%

まずは--testでテスト実行してみる。成功したら--testを外す
このバッチをタスクスケジューラで数分置きに実行するようにしておく
これでRedmineのプロジェクトと一対一でSVNリポジトリができるようになる

LDAP認証に対応してみる・・・?

cpanからAuthen::Simple::LDAPをインストールしたいが、まずは ppm から Digest-MD5 をインストールする
その後おもむろにcpan install Authen::Simple::LDAPする

これで、RedmineでLDAP認証が設定されていれば、それを使ってSVNも認証してくれる。