豚吐露@wiki
digest認証fileに大量のuser追加するのがウザい
最終更新:
ohden
-
view
digest認証fileに大量のuser追加するのがウザい
Cent OS 6.4
digest認証をする時にhtdigestを使って認証用のfileを作らなきゃいけないんだけど、引数にパスワードを指定できないのでちまちま打たなきゃいけない。
小人数ならえぇけど、大量のuser追加せにゃいけんようになると正直ウザい。
小人数ならえぇけど、大量のuser追加せにゃいけんようになると正直ウザい。
なのでApacheで使うDigest認証ファイルをsh scriptで作る!!
必要な情報は3つ。『ユーザ名』『領域名』『パスワード』
領域名は、realm(レルム)って言われてるヤツで、httpd.confとかに『AuthName』で指定するヤツ。
これも合ってないとdigest認証できないらしい。
領域名は、realm(レルム)って言われてるヤツで、httpd.confとかに『AuthName』で指定するヤツ。
これも合ってないとdigest認証できないらしい。
さて、digetst認証の仕方は置いといて...
digest認証fileの書式は『ユーザ名』『領域名』と『認証情報』を『:』でつないだものになる。
認証情報ってのは何かと言うと『ユーザ名』『領域名』『パスワード』を『:』でつないだ文字列から算出したMD5 hash。
認証情報ってのは何かと言うと『ユーザ名』『領域名』『パスワード』を『:』でつないだ文字列から算出したMD5 hash。
異常系のcheckとか全然入れてないけど、簡単なsh scriptを書くとこんな感じになる。
sh scriptの第1引数に『領域名』、第2引数に『ユーザ名』、第3引数に『パスワード』を指定する前提ね。で、パスワードを省略するとパスワードにはユーザ名と同じ物を使うようにしてる。
e.g.) getDigest
sh scriptの第1引数に『領域名』、第2引数に『ユーザ名』、第3引数に『パスワード』を指定する前提ね。で、パスワードを省略するとパスワードにはユーザ名と同じ物を使うようにしてる。
e.g.) getDigest
- #!/bin/sh
-
- if test $# -lt 2 -o $# -gt 3 ; then
- echo "usage: getDigest REALM USERID [PASSWD]"
- exit 1
- fi
-
- realm=$1
- userid=$2
- if [ $3 ] ; then
- passwd=$3
- else
- passwd=$userid
- fi
-
- md5=`echo -n $userid:$realm:$passwd | md5sum | cut -c 1-32`
-
- echo $userid:$realm:$md5
で、実行すると...
$ ./getDigest hogeRealm hogeUser hogePasswd
hogeUser:hogeRealm:f822ff2d43d463d1677e3324d078cfa9
こんな風に返してくれる。
一応、htdigestと比較。
$ htdigest -c hoge hogeRealm hogeUser
Adding password for hogeUser in realm hogeRealm.
New password: hogePasswd
Re-type new password: hogePasswd
$ cat hoge
hogeUser:hogeRealm:f822ff2d43d463d1677e3324d078cfa9
大丈夫っぽぃので、これを使って大量生産できる。(*´ω`)
更新日: 2014年12月16日 (火) 15時34分38秒