AuthNameはユニークに。

AuthNameはユニークに。

apacheで複数のディレクトリにそれぞれのIDにて基本認証をかけているサイトがあります。
今回は、そこで解った盲点というか、トラブルというか、傍から見たら、そりゃミスなんじゃねぇの?まぁ、そんな話です。

apacheで手っ取り早く、基本認証をかけるということになれば、大体、各ディレクトリ直下に「.htaccess」ファイルを置く事が一般的です。
僕の仕事では、割と頻繁に作っているので、「.htaccess」の雛形を持ち、ユーザIDを該当するIDを設定してディレクトリに置いています。

そんな感じで、ふと、運用しているときに起きました。
それぞれ別のIDを設定しているディレクトリを移動したときに、当然のようにIDとパスワードを入力します。
例えばディレクトリAからディレクトリBへ移動する。そんなところです。
運用にて、こういうディレクトリが多くなれば、それぞれIDを打ち直すのが面倒くさいので、大体多くの人はパスワードを記憶します。

で、そのディレクトリBからディレクトリAへ移動すると、確かパスワードを記憶させたはずなのに、ディレクトリBで認証したIDとパスワードが表示されてしまいました。
ブラウザの問題なのかな?とも思い、まぁ、その都度打ち直せばいいやと思っていたのですが、頻繁にディレクトリを移動してたら、やっぱり面倒くさくなる。

どうにかならないか?と思い調べたら、どうもブラウザの問題じゃなく、「.htaccess」の設定内容という所に落ち着く。
「.htaccess」の詳細な書き方は、きちんとしたサイトに譲るとするが、どうやら、AuthNameの設定に問題があるということがわかった。

AuthName "Please enter your ID and password"

みたいな事を入れると、基本認証のダイアログに
「Please enter your ID and password」
なんて出せるので、雛形にも定例文のように入れてた訳です。

どうも、それが良くなかったようで、
これは、アクセスしてきたユーザに対するメッセージが表示できるテキスト領域ではなかったのです。AuthNameはこのディレクトリに対する認証領域名として設定する名前で、キーのようなものだと。
そのため、ブラウザは、このAuthNameを見てIDとパスワードを記憶させるので、ディレクトリの移動の度に、前のAuthNameに関連付けていたIDとパスワードが表示されると言う事なのです。

じゃ、どうすれば良いか?
要するに、AuthNameがカブらなければ良いのだから、それぞれユニークになるようにすればいいのです。
だからといって、ディレクトリの名前とか入れてたら、IDとかパスワードのヒントを出してるようにも見えてしまう。
そこで、それぞれの「.htaccess」の設定で

AuthName "Please enter your ID and password"

AuthName "Please enter your ID and password [********]"

とし、********にランダムで8文字入れて解決しました。

ただ、個人的には…、
わざわざAuthNameにランダムで8文字入れなきゃならなくなったので、簡単にしてた仕事なのに、とんだ運用負担増だと。
何とか簡単にならんものかと、思案にふけってる訳です。

教訓:
AuthNameはユニークに。

このエントリーをはてなブックマークに追加

« FedoraCoreでソフトウェアRAID1構築|
一覧へ
|ウェブサイトの引越し(.htaccess) »


ページの先頭へ

CYBERJETSHIN SITE MENU

Copyright (C) 2012 CYBERJETSHIN All Rights Reserved.