authn_mysql_moduleを使ってのユーザー認証の方法

2,257 views
Skip to first unread message

yoshi

unread,
Sep 27, 2010, 7:42:45 AM9/27/10
to Redmine Users (japanese)
yoshiと申します。

Redmineのユーザーを使用して、SVNの認証を行いたいのですが、設定方法がよく分かりません。

ネットを調べると「auth_mysql_module」を使っての事例がありましたので、モジュールをダウンロードしたのですが、最新では
「authn_mysql_module」になっていて、設定方法が違うようでうまくいきません。

設定方法をご存知の方は教えてください。

当方の設定した内容は以下の通りです。
・設定内容(httpd.conf)
LoadModule authn_mysql_module modules/mod_authn_mysql.so


<IfModule mod_authn_mysql.c>
AuthnMySQLDBHost SRV1 localhost
AuthnMySQLDBHost SRV1 localhost
AuthnMySQLDBUsername SRV1 bitnami
AuthnMySQLDB SRV1 bitnami_redmine
AuthnMySQLTable SRV1 users
AuthnMySQLUsernameField SRV1 login
AuthnMySQLPasswordField SRV1 hashed_password
AuthnMySQLIsActiveField SRV1 act
AuthnMySQLConnMin SRV1 3
AuthnMySQLConnSoftMax SRV1 12
AuthnMySQLConnHardMax SRV1 20
AuthnMySQLConnTTL SRV1 600

<Location /restricted>
AuthName "MySQL Secured Place"
AuthType Basic
AuthBasicProvider mysql
AuthnMySQLServerConfig SRV1
require valid-user
</Location>
</IfModule>


<Location /svn>
DAV svn
SVNListParentPath on
SVNParentPath F:\SVN

AuthName "MySQL Secured Place"
AuthType Basic
AuthBasicProvider mysql
AuthnMySQLServerConfig SRV1
require valid-user

</Location>

・現象
 リポジトリにアクセスすると、ユーザー・パスワードの認証は出てくるので、
Redmineのユーザー・パスワードを入力すると以下のエラーになります。
(Chrome)

このウェブサイトはご利用いただけません。

http://10.70.3.112/svn/%e5%bb%b6%e5%b2%a1IT%e9%85%8d%e8%bb%8a%e6%94%af%e6%8f%b4%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0/
のウェブページは一時的に停止しているか、新しい
http://10.70.3.112/svn/%e5%bb%b6%e5%b2%a1IT%e9%85%8d%e8%bb%8a%e6%94%af%e6%8f%b4%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0/
に移動した可能性があります。

エラーの詳細
元のエラー メッセージは次のとおりです。

エラー 101 (net::ERR_CONNECTION_RESET): 不明なエラーです。

Toshi MARUYAMA

unread,
Sep 27, 2010, 8:03:15 PM9/27/10
to Redmine Users (japanese)
まるやまです。

On 9月27日, 午後8:42, yoshi <ykitano.os...@gmail.com> wrote:
> yoshiと申します。
>
> Redmineのユーザーを使用して、SVNの認証を行いたいのですが、設定方法がよく分かりません。
>

手段は違うようですが、目的は一緒のようなので、こちらを試されてはいかがでしょうか?

Repositories access control with apache, mod_dav_svn and mod_perl
http://www.redmine.org/wiki/redmine/Repositories_access_control_with_apache_mod_dav_svn_and_mod_perl

Kato Kiwamu

unread,
Sep 27, 2010, 9:42:49 PM9/27/10
to redmine-...@googlegroups.com, Redmine Users (japanese)
加藤です。

以前、mod_auth_mysql を利用してできました。
以下のサイトで詳しく説明されています。

Authenticate Apache against Redmine with AuthMySQL
http://maff.ailoo.net/2009/03/authenticate-apache-against-redmine-with-authmysql/

ご参考までに。
--
このメールは Google グループのグループ「Redmine Users (japanese)」の登録者に送られています。
このグループに投稿するには、redmine-...@googlegroups.com にメールを送信してください。
このグループから退会するには、redmine-users-...@googlegroups.com にメールを送信してください。
詳細については、http://groups.google.com/group/redmine-users-ja?hl=ja からこのグループにアクセスしてください。

wak...@mail.lwtips.org

unread,
Sep 28, 2010, 2:30:23 AM9/28/10
to redmine-...@googlegroups.com
広瀬です。


yoshi <ykitan...@gmail.com>さん:
> yoshiと申します。
>
> Redmineのユーザーを使用して、SVNの認証を行いたいのですが、設定方法が
よく分かりません。


私の場合、諸事情によりRedmine内部のSVNは利用しておらず、RPM版のApache+
SVN、認証のユーザデータとして、Redmine内部のSQLデータを利用しています。
参考となるかわかりませんが、参考程度にどうぞ。


※Redmineのmod_dav_svnが正常に機能しないからですけどね・・・


<Location /repos>
DAV svn
SVNListParentPath on
SVNParentPath /var/www/svn
SVNAutoversioning on
AuthMySQLEnable On
AuthMySQLSocket Redmine上のDBのソケットファイル
AuthMySQLPort ポート番号(ソケットあるなら不要)
AuthMySQLHost 127.0.0.1(適時置き換えてください)
AuthMySQLUser SQLログインユーザ
AuthMySQLPassword SQLログインパスワード
AuthMySQLDB Redmine DB名
AuthMySQLUserTable ユーザテーブル名
AuthMySQLNameField ユーザーログインフィールド名
#AuthMySQLUserCondition 必要に応じてコンディション(任意)
AuthMySQLPasswordField パスワードフィールド
AuthMySQLPwEncryption 暗号化方式(sha1がデフォ)
AuthMySQLNoPasswd Off(NULLパスの許可・不許可)

AuthType Basic
AuthName "Redmine"
Require valid-user
</Location>

上記のコンフィグを、RPM版のApacheのconf.d/配下に置いて、ロードしてます。

当然ですが、RPM版のApacheでMySQL認証をする場合、mod_auth_mysqlのモジュー
ルを入れている必要があります(上記のコンフィグの場合のみ)

※RPM版Apahcheでは、標準でmod_authn_dbm、mod_authz_dbmが組み込まれている
 ので、わざわざmod_auth_mysqlを利用する必要無いんですがね・・・

※Redmine側のApacheが先に80番ポートで動作しているので、RPM版Apacheの動作
 させるポート番号は80以外に変更が必須です。


私の場合はSubversionのリポジトリ管理ツールとして、Submin利用しているので、
実際のコンフィグはもう少し複雑です。


いじょ

wak...@mail.lwtips.org

unread,
Sep 28, 2010, 2:36:11 AM9/28/10
to redmine-...@googlegroups.com
広瀬です


すいません、以下のコンフィグに1行足りませんでした。


AuthzSVNAccessFile SVNアクセス定義ファイルパス


SVNのアクセス定義ファイルの行まで消していました。
Require valid-userの1つ上ぐらいに追加で入ってます。

このSVNアクセス定義ファイルの場所は任意です。


wak...@mail.lwtips.orgさん:

> --
> このメールは Google グループのグループ「Redmine Users (japanese)」の登
録者に送られています。
> このグループに投稿するには、redmine-...@googlegroups.com にメール
を送信してください。

> このグループから退会するには、redmine-users-ja+
unsub...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/redmine-users-ja?hl=ja
からこのグループにアクセスしてください。
>

yoshi

unread,
Sep 28, 2010, 7:54:50 PM9/28/10
to Redmine Users (japanese)
yoshi改め北野です。

みなさん、返信ありがとうございます。

まるやまさん

 こういうやりかたもあるんですね、参考にしてみます。

加藤さん、広瀬さん

 mod_auth_mysql ですが、
 当方、WindowsのApatch2.2を使用しており、
 mod_auth_mysql がないようなのです。
 かわりに「n」のついた、
 mod_authn_mysqlがありましたので、これでできないかと
やっているのですが、なかなかうまくいきません。

 いろいろ試しているのですが、
 mod_authn_mysqlには暗号化の機能がないような感じがしています。
 (AuthMySQLPwEncryption にあたる設定項目がない)

 なので、無理なのかなと思いはじめています。

 ひきつづき何か情報がありましたら、よろしくお願いします。

 話はかわりますが
>※Redmineのmod_dav_svnが正常に機能しないからですけどね・・・
 これは、私も最初はまりました。
 Apacheのmodulesにモジュールのファイルをコピーしても動かないので、
 下記のようにインストールされた時の場所を指定してやるとうまく動くようになりました。

LoadModule dav_svn_module "D:\Program Files\BitNami Redmine Stack
\subversion\bin\mod_dav_svn.so"
LoadModule authz_svn_module "D:\Program Files\BitNami Redmine Stack
\subversion\bin\mod_authz_svn.so"

 参考まで..

wak...@mail.lwtips.org

unread,
Oct 1, 2010, 11:52:43 AM10/1/10
to redmine-...@googlegroups.com
北野さん

ども、広瀬です。


今更でなんなんですが、以下の参考情報の件、ありがとうございます。
当方、Windows版ではなくLinux上で利用しているので、あまり参考には
ならなかった様ですね。すみません。


尚、以下の情報については存じています。尚、Linuxの場合にはモジュール
自体は当然利用すべき位置に配置してあり、尚且つ、apachectl -tでチェック
掛けると必ずエラー起こすのと、SVNへのアクセス時にどうも異常を起こし
ている問題があったので、あきらめた経緯があります。

まぁ、個人ではなく会社での利用なので、間違いを起こすよりかは面倒では
あるものの、今のところは問題無いので放置してます。


>  話はかわりますが
> >※Redmineのmod_dav_svnが正常に機能しないからですけどね・・・
>  これは、私も最初はまりました。
>  Apacheのmodulesにモジュールのファイルをコピーしても動かないので、
>  下記のようにインストールされた時の場所を指定してやるとうまく動くよう
になりました。
>
> LoadModule dav_svn_module "D:\Program Files\BitNami Redmine Stack
> \subversion\bin\mod_dav_svn.so"
> LoadModule authz_svn_module "D:\Program Files\BitNami Redmine Stack
> \subversion\bin\mod_authz_svn.so"


#文法チェックでエラー起こすのにApacheは正常に起動するんだよね・・・
#なんなんでしょ、これはw

yoshi

unread,
Oct 3, 2010, 9:23:34 PM10/3/10
to Redmine Users (japanese)
北野です。

 あれから色々やりまして、mod_authn_dbd.soとmod_dbd.soを
使って認証を試みたのですが、
 ApacheとRedmineのパスワードのエンコードの方法が違うらしく
うまくいきませんでした。
 http://arbolbell.jp/developer/2009/03/redmine-svn.html

 まるやまさんに教えていただいた、perlを使う方法で
行くしかなさそうです。

yoshi

unread,
Oct 5, 2010, 4:57:51 AM10/5/10
to Redmine Users (japanese)
北野です。

まるやまさんに教えていただいた方法でうまくいきました。
ありがとうございました。

一応作業手順を載せておきます。

環境
 Windows2003Server
 BitnamiのRedmineスタックを使用してインストール
 インストール先は「D:\Program Files\BitNami Redmine Stack」
 Apacheでの接続はできている状態

参考にしたサイト
http://sites.google.com/site/ta2masaru/Home/redmine/redminesubversion
http://d.hatena.ne.jp/download_takeshi/20070907/1189185165
http://cid-2978b6770f9035d9.spaces.live.com/blog/cns!2978B6770F9035D9!281.entry

インストール手順
1.ActivePerl5.8.9をインストール
 D:\Perlへインストールしました
2.Perlのモジュールのインストール
ppmを使用してインストール
 ・プロキシーのアドレスのセット
SET HTTP_proxy=http://プロキシーのアドレス:ポート
 ・mod_perlのインストール
ppm install http://theoryx5.uwinnipeg.ca/ppms/mod_perl.ppd
 インストールの最後にApacheのモジュールの場所を聞かれるので以下を入力
  D:/Program Files/BitNami Redmine Stack/apache2/modules
 ・DBD-mysqlのインストール
ppm install http://theoryx5.uwinnipeg.ca/ppms/DBD-mysql.ppd
 ・DBIのインストール
ppm install http://theoryx5.uwinnipeg.ca/ppms/DBI.ppd

3.Redmine.pmのコピー
  D:\Program Files\BitNami Redmine Stack\apps\redmine\extra\svn
\Redmine.pm
  を
  D:\Perl\site\lib\Apache\Authn の下にコピー
  Authnフォルダーはなかったので作成しました。
4.httpd.confの修正
 以下を追加


# to use mod_perl2
LoadModule perl_module modules/mod_perl.so
<IfModule mod_perl.c>
LoadFile "D:/Perl/bin/perl58.dll"
</IfModule>

PerlLoadModule Apache::Authn::Redmine
<Location /svn>
DAV svn
SVNListParentPath on
SVNParentPath "F:/SVN"
AuthName "Subversion repository"
AuthType Basic

#perl認証の場合
Order deny,allow
Deny from all
Satisfy any

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

<Limit GET PROPFIND OPTIONS REPORT>
Require valid-user
Allow from redmine.server.ip
# Allow from another-ip
Satisfy any
</Limit>
# write access
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>

## for mysql
RedmineDSN "DBI:mysql:database=bitnami_redmine;host=127.0.0.1"

RedmineDbUser "bitnami"
RedmineDbPass "パスワード"

</Location>

5.Redminenのプロジェクト識別子と同じ名称のリポジトリを作成。

以上で認証ができるようになりました。
Reply all
Reply to author
Forward
0 new messages