[[Apache/Tips]]
 #contents
 ----
 * .htaccess を用いた Basic 認証(基本認証) [#d0f6ad9c]
 ** Basic 認証って? [#jc661901]
 
  Basic 認証(基本認証)は Apache に古くから実装されている認証方式です。標準で認証機能が apache に実装され設定が非常に手軽なことから広く使われています。
 
  ですが、最近の Apache 2.x 以降は [[Digest 認証:http://pocketstudio.jp/linux/?Apache%2FTips%2FDigest%20%C7%A7%BE%DA]]が標準で実装されるようになりました。特別な理由が無い限り [[Digest 認証:http://pocketstudio.jp/linux/?Apache%2FTips%2FDigest%20%C7%A7%BE%DA]]を用いるほうがセキュリティ的に望ましいと言えるでしょう。
 
  とはいえ、Basic 認証は設置の手軽さと汎用性から、とりあえず手軽に認証する方法として今後も重宝されるでしょう
 
 
 ** とにかく Basic 認証を使ってみる [#x0aea5f3]
 
  認証するファイルの置き場所は "/home/ayaka/.htpasswd" とします。.htpasswd のようなファイルは apache の設定で見えなくされているとはいえ((標準で .ht と付く名前のファイルは見えないように httpd.conf で指定されています)) public_html 配下に置くのは好ましくないとされます(サーバの設定によっては中身が晒されてしまう危険性があるためです)。
 
  認証する時に表示される名前は "Warehouse" とします。
 
  認証するユーザ名は "admin" とします。パスワードは適当です。
 
  では、まず htpasswd コマンドによってユーザを追加します。
 
  $ htpasswd -c /home/ayaka/.htpasswd admin
  New password:
  Re-type new password:
  Adding password for user admin
 
  複数のユーザを追加するときは -c を省いて、同様にコマンドを入力します。たとえば admin2 を追加するときには、
 
  $ htpasswd /home/ayaka/.htpasswd admin2
  New password:
  Re-type new password:
  Adding password for user admin2
 
  このようになります。cat でパスワードファイルを覗いてみると、admin と admin2 が追加されている事が分かります。
 
  $ cat /home/ayaka/.htpasswd
  admin:A.JT/17eUdFYs
  admin2:iUWCSusG1geEo
 
  もしパスワードからユーザ情報を削除したい場合 -D オプションをつけます(これは Apache 2.0.46 以降の htpasswd です。それ以前の Apache では vi エディタなどでファイルを開き、該当するユーザの行を削除しなくてはいけません)。
 
  $ htpasswd -D /home/ayaka/.htpasswd admin2
  Deleting password for user admin2
 
  このように admin2 のパスワード情報が削除されたと表示されます。
 
  次に .htaccess の設置です。
  $ vi /home/ayaka/public_html/auth/.htaccess
  vi エディタなどでファイルを開くか FTP でファイルを転送します。記述は次のようなものです。
 
  AuthType Basic
  AuthName "Warehouse"
  AuthUserFile /home/ayaka/.htpasswd
  Require user admin
 
 - AuthType = 認証方式 = Basic 認証(基本認証)という意味です
 - AuthName = 認証時にブラウザに表示される場所名です
 - AuthUserFile = 認証時に使う認証用のユーザ名とパスワードのファイルです。htpasswd コマンドで作成します。
 - Require = AuthUserFile で指定されているユーザに対して認証許可を与えます。この部分は特定のユーザのみにしかアクセスを許さないようにすることも出来ます(たとえ AuthUserFile で指定されたファイル名のなかに情報があっても)。例として admin と system というユーザのみ認証させたくない場合は "Require user" の後にユーザ名を入れます。複数のユーザが居るときは "," で区切ります。
  Require user admin,system
 
  あとはブラウザからアクセスして認証画面の表示を確認します。(なお最近の apache 2.x では valid-user が使えなくなりました。.htaccess に記述しても「reason: unknown require directive:"valiid-user"」とエラーが出るのでシステムのバージョンアップ時には要注意です。)
 
 #ref(http://pocketstudio.jp/r_images/wiki_linux/2005/apache_basic.gif);
 
  以上で Basic 認証についての解説は終わりです。
 
  ほとんとにたような手順で、よりセキュリティが高い [[Digest 認証:http://pocketstudio.jp/linux/?Apache%2FTips%2FDigest%20%C7%A7%BE%DA]] を使うこともできますので、時間があれば是非是非試してみてください。
 
 

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS