WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:認証するとしたら

0:[投稿] むぎ [2002/03/07 14:55 ][環境:わからない UNIX系+Perl]

お世話になります。
アクセス制限をするのに困っております。
BASIC認証で行こうかと思うのですが、
以下のような条件なんです
----------------------------------------------------
アクセス可能にしたいユーザーが5千人以上いる。
勿論、プロバイダ等はばらばら(IPとかで制限できない)。
今から、IDやパスワードを送付することは不可能。
会員番号はある。
----------------------------------------------------
5千人分のユーザーとパスワードを作成するのも一苦労な気がしますし、こんなに多くてもちゃんと動作するものなのでしょうか?
それとも何か別な方法があるでしょうか?

よろしくお願いいたします。


1:[回答] ヨシミ [2002/03/07 16:17 ]

パスワードは作成しないで自動生成でよいでしょう。
また、5000程度なら多かろうが動作するでしょう。

ただ、会員番号しか無いとどうしようもない気がします。
会員番号とそれに対応するメールアドレスくらいあると良いのですが。

<方法1>
「パスワード発行ページ」
「パスワード発行ページ」にてメールアドレスを入力すると、自動でパスワードを生成し、そのメールアドレスに自動送信。
なおこの際、会員のメールアドレス以外は利用できなくしておく。

<方法2>
「パスワード登録ページ」+「本人認証ページ」
「パスワード登録ページ」にて、メールアドレスとパスワードを入力すると、そのメールアドレスに認証キーが送られる。
なおこの際、会員のメールアドレス以外は利用できなくしておく。

で、メールで送った認証キーを、別に設ける「本人認証ページ」で入力させ、その後メールアドレスとパスワードが有効になるようにする。

いずれの場合も、メールアドレス変更も可能にした方が良いでしょう。
パスワード登録と似た手順で変更可能にしておく。


2:[質問] むぎ [2002/03/08 22:19 ]

ヨシミ様ありがとうございます。
レスが遅くなって申し訳ございません。

これは、BASIC認証のユーザーデータファイルをこの様な形で作成しても良いモノなのですか?
一つ一つシェル上で作成するモノと思ってました。
あと、実際の所何件くらいまでが実用に耐えられる数になりますのでしょうか?


3:[回答] ライむぎ [2002/03/08 23:16 ]

>BASIC認証のユーザーデータファイルをこの様な形で作成しても良いモノなのですか?
レスキューさんの所とかにサンプルがあるんで研究してください。
ただし、サーバー側で認証方式が違う(DES/MD5)と当然失敗します。

>所何件くらいまでが実用に耐えられる数
サーバースペック等にもよるのではないでしょうか?
参考までにうまくいったら教えてください。


4:[回答] ふじ [URL] [2002/03/08 23:30 ]

> これは、BASIC認証のユーザーデータファイルをこの様な形で作成しても良いモノなのですか?
例えば Perl なら

$username = 'hoge';
$password = 'fuga';
print $hoge, ":", crypt($password, $salt), "\n";

みたいにして作れます。CGI経由で操作するときはパーミッションには
気をつけたほうがよいですが。

> あと、実際の所何件くらいまでが実用に耐えられる数になりますのでしょうか?
(仕事で使うつもりなら、)実験してみるべきです。
要求される応答時間、同時アクセス数、サーバマシンのスペックなどによって
その値は変わりますので、一概にはいえません。

手元の P3-800 x 2 , Mem 384MB, Apache-1.3.22, Linux (kernel2.4)
なマシンで ab (apache の附属のベンチマークコマンド) で
計測してみましたが、

5000件のアカウントを登録して 10KB ほどの GIF ファイルを転送した場合、
ab -c 10 -t 100 http://localhost/test.gif

・認証なし
約 1000 Requests per second.(一秒間に処理できたリクエスト数)

・.htpasswd (mod_auth) で認証、ファイルの先頭付近に記述されているアカウント
約 720

・.htpasswd (mod_auth) で認証、ファイルの最後付近に記述されているアカウント
約 200

・BerkeleyDB (mod_auth_db) で認証
約 250

となりました。5000件ぐらいだと mod_auth, mod_auth_db の
どちらを使うか微妙なところですが、数万件のオーダーになるなら
mod_auth_db の方がいいでしょう。
# mod_auth だとテキストファイルを先頭から読みますので、
# アカウント数に比例して処理時間が増加します。

自分なら、数千件のオーダーになるなら、バックエンドに RDB を使って、
PostgreSQL なら mod_auth_pgsql、MySQL なら mod_auth_mysql
などのモジュールで認証をかけます。データの扱いが楽だし。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World