豚吐露@wiki

digest認証fileに大量のuser追加するのがウザい

最終更新:

ohden

- view
管理者のみ編集可

digest認証fileに大量のuser追加するのがウザい

Cent OS 6.4


digest認証をする時にhtdigestを使って認証用のfileを作らなきゃいけないんだけど、引数にパスワードを指定できないのでちまちま打たなきゃいけない。
小人数ならえぇけど、大量のuser追加せにゃいけんようになると正直ウザい。

なのでApacheで使うDigest認証ファイルをsh scriptで作る!!

必要な情報は3つ。『ユーザ名』『領域名』『パスワード』
領域名は、realm(レルム)って言われてるヤツで、httpd.confとかに『AuthName』で指定するヤツ。
これも合ってないとdigest認証できないらしい。

さて、digetst認証の仕方は置いといて...

digest認証fileの書式は『ユーザ名』『領域名』と『認証情報』を『:』でつないだものになる。
認証情報ってのは何かと言うと『ユーザ名』『領域名』『パスワード』を『:』でつないだ文字列から算出したMD5 hash。

異常系のcheckとか全然入れてないけど、簡単なsh scriptを書くとこんな感じになる。
sh scriptの第1引数に『領域名』、第2引数に『ユーザ名』、第3引数に『パスワード』を指定する前提ね。で、パスワードを省略するとパスワードにはユーザ名と同じ物を使うようにしてる。
e.g.) getDigest
  1. #!/bin/sh
  2.  
  3. if test $# -lt 2 -o $# -gt 3 ; then
  4. echo "usage: getDigest REALM USERID [PASSWD]"
  5. exit 1
  6. fi
  7.  
  8. realm=$1
  9. userid=$2
  10. if [ $3 ] ; then
  11. passwd=$3
  12. else
  13. passwd=$userid
  14. fi
  15.  
  16. md5=`echo -n $userid:$realm:$passwd | md5sum | cut -c 1-32`
  17.  
  18. 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秒

名前:
コメント:

すべてのコメントを見る
記事メニュー
ウィキ募集バナー