あるホームページにアクセスさせる際、IDとパスワードにより制限する必要があります。

ユーザー数は3,300名で、異なるIDとパスワードを作成したいのです。ベーシック認証で行います。

システム部門から教えてもらった方法は、アパッチのDos窓から1つ1つ入力して暗号化する方法ですが、3,300回もやっていられません。探したらHtpasser(http://www.vector.co.jp/soft/winnt/net/se384800.html)というソフトがありましたが、条件に合わないため使用できない ということです。

条件とは、Apache 2対応、md5 対応の2つです。
どなたか、教えてください。

回答の条件
  • 1人2回まで
  • 登録:2007/02/23 17:14:53
  • 終了:2007/02/28 12:23:51

回答(4件)

id:inokuni No.1

いのくに回答回数1343ベストアンサー獲得回数212007/02/23 19:39:04

ポイント100pt

「-b」オプションをつけてバッチモードにすれば、いちいちパスワードを入力せずともコマンドラインから作成できます。

参考: http://httpd.apache.org/docs/2.0/ja/programs/htpasswd.html


htpasswd.exe -b [ファイル名] [ID] [パスワード]


htpasswd.exe -b .htpasswd user001id password001
htpasswd.exe -b .htpasswd user002id password002
htpasswd.exe -b .htpasswd user003id password003
htpasswd.exe -b .htpasswd user004id password004

というように、一気にできると思います。


尚、

The MD5 algorithm used by htpasswd is specific to the Apache software; passwords encrypted using it will not be usable with other Web servers.

htpasswdによって使用されるMD5アルゴリズムは、アパッチ・ソフトウェアに特有です; それを使用して暗号化されたパスワードは他のウェブサーバーでは使用できません。

との事ですので、必ず、使用する Apache の htpasswd.exe を使用する必要があるようです。

id:ktakahas

ありがとうございました。一気にできそうで助かります。

2007/02/28 12:19:06
id:Mook No.2

Mook回答回数1312ベストアンサー獲得回数3912007/02/23 20:03:12

ポイント100pt

下記はLINUX(UNIX)での作成例です。

まず、「ユーザ名,パスワード」(カンマ区切り)が羅列された下記のようなファイル(例ではsrc.txt)を用意します。

yamada,passwordABC

sato,password123

suzuki,passwordXYZ

honda,password999

Shell で、

for line in `cat src.txt`
do
echo $line | awk -F, '{printf( "htpasswd -bm .htpasswd %s %s\n",$1, $2);}' >> makepass.sh
done

(作り直すときは、makepass.sh を一旦削除してから実行してください。)

を実行すると、パスワードを生成するための、スクリプトが生成されます。

この makepass.sh ファイルを開き、先頭の一行だけ -bm の部分を -bmc に変更します(ファイル生成オプション)。


スクリプトのパーミッションを実行モードにし、

chmod +x makepass.sh

実行すると .htpasswd ファイルが生成されす。

(htpasswdのパスが通っていることを確認してから実行してください。)


Windows なら Cygwin でも実行できます。

参考

htpasswd コマンドの実行方法

パスワードファイルの作成

id:ktakahas

ありがとうございました。私のスキルでは難しそうですが、システム部門と相談してみます。

2007/02/28 12:19:46
id:b-wind No.3

b-wind回答回数3344ベストアンサー獲得回数4402007/02/23 21:30:46

ポイント100pt

アカウントの管理を htpasswd 形式でなく LDAP で管理したらどうでしょう?

ユーザーから見たら通常の BASIC 認証と区別はありません。

Apache2のBasic認証をLDAPで

id:ktakahas

ありがとうございました。私のスキルでは難しそうですが、システム部門と相談してみます。

2007/02/28 12:20:21
id:ymlab No.4

ymlab回答回数508ベストアンサー獲得回数342007/02/23 22:32:36

ポイント100pt

PHPの場合、

crypt(パスワードに設定する文字列);

というものがありますよ。

http://phpdoc.makizou.com/function.crypt.html

異なるパスワードに条件はあるのでしょうか。

もしないのであれば、ユニークなパスワードを生成するために、

これまでに作成したパスワード名を格納するものを用意して(システムにっよりますが、配列で充分だと思いますが。)、

8文字くらいで、擬似乱数でユニークパスワードを生成させて、

適宜適応していけばよいのではないでしょうか。

それとももっと簡単に、先頭が

10001をID名として、13301が最後のようなID名をつけるのであれば、

for()で回せば作れます。

id:ktakahas

ありがとうございました。私のスキルでは難しそうですが、システム部門と相談してみます。

2007/02/28 12:20:26

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません