人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

あるホームページにアクセスさせる際、IDとパスワードにより制限する必要があります。
ユーザー数は3,300名で、異なるIDとパスワードを作成したいのです。ベーシック認証で行います。

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

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

●質問者: ktakahas
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:Apache DOS窓 md5 アクセス アパッチ
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● いのくに
●100ポイント

「-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 を使用する必要があるようです。

◎質問者からの返答

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


2 ● Mook
●100ポイント

下記は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 コマンドの実行方法

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

◎質問者からの返答

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


3 ● b-wind
●100ポイント

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

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

Apache2のBasic認証をLDAPで

◎質問者からの返答

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


4 ● ymlab
●100ポイント

PHPの場合、

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

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

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

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

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

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

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

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

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

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

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

◎質問者からの返答

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ