LoginSignup
53
62

More than 5 years have passed since last update.

ApacheでBasic認証設定

Last updated at Posted at 2017-03-17

ApacheでのBasic認証設定を下記サイトを参考にやったのでメモ。

  1. 基本認証でアクセス制限をかける方法(https://allabout.co.jp/gm/gc/23780/)
  2. いまさらながら、Basic認証のつけかた(http://qiita.com/yuwaita/items/e406c645ae8d0cc3c3fa)

1.基本認証でアクセス制限をかける方法

.htaccessファイルを作る

.htaccessファイルとは

Webサーバの設定ファイル。

.htaccessファイルの書き方と設置方法

下記の4行を記載する。

  • AuthType Basic
  • AuthName 【認証領域名称】
  • AuthUserFile 【ID・PASSWORD格納ファイルのパス】
  • require valid-user


1行目…認証方法としてBasic認証を指定
2行目…認証に使う領域名の指定
3行目…パスワードファイルの所在
4行目…認証されたユーザにアクセスを許可する

ファイルの保存先

アクセス制限を施したいディレクトリにアップロードする

.htpasswdファイルを作る

.htpasswdファイルとは

基本認証で使用する「IDとPASSWORDを格納した」ファイル。

htpasswdファイルの構成

ID名:暗号化されたパスワード

例:)
suzuki:XkB8Ou3kAcODe
yamada:5dHw0u9s4TltI
inoue:A0e7PvhEdWyvE

ここでいうID名は素で入力するが暗号化されたパスワードは作成する必要がある。
※ID名は大文字小文字の区別がある。

暗号化リンク
http://www.nishishi.com/scripts/htpasswd/
http://www.luft.co.jp/cgi/htpasswd.php
http://orange-factory.com/tool/crypt.cgi
などなど。

ファイルの保存先

.htaccessに記載した.htpasswdの保存先を指定。

2.いまさらながら、Basic認証のつけかた

手順(ざっと)

  1. .htaccessファイルを作成する
  2. .htaccess用パスワード作成ツールここここで.htpasswdを作成する
  3. 1,2をサーバにアップする。パーミッションは604

.htaccessについて

記述例

.htaccess
AuthUserfile /フルパス/.htpasswd
AuthGroupfile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user

詳細

  • AuthUserfile /フルパス/.htpasswd
    サーバーのルートディレクトリからの.htpasswdへのパスを指定する。/usr/local/...とか/home/pass/...とかそういうの。

  • AuthGroupfile /dev/null
    グループごとにアクセスを許可する、という指定。「/dev/null」とは、そのようなファイルは存在しないという意味。つまりグループごとでのアクセス制限はしないという意味。

  • AuthName "Please enter your ID and password"
    ダイアログに表示される文章を指定。日本語だと文字化けするようだ。

  • AuthType Basic
    AuthTypeを指定。「Basic(ベーシック認証)」と「Digest(ダイジェスト認証)」の2種類があって、Digestのほうが安全らしい

  • require valid-user
    ユーザーが誰であろうと、入力したIDとパスワードが合っていればアクセスできるという意味。特定ユーザーだけにアクセスさせたい場合は「require user xxx」とかする。

  • その他
    ファイルの最後では改行したほうがいいかもしらんね。

悩み諸々

  • パーミッション
    パーミッションは604!これでだめなら644?

  • アップする場所
    .htpasswdのファイルは、DocumentRootより上に設置すること。無理な場合は「AddHandler cgi-script htpasswd」を追記。
    もしくは.htaccessファイルに.htaccessと.htpasswdにアクセスできなくさせる下記のようなコードを書く。

.htaccess
<Files ~ "^\.ht">
    Order allow,deny
    Deny from all
    Satisfy All
</Files>
  • 500 Internal Server Error
    .htaccessファイルに誤りがある場合。サーバの設定によって.htaccessファイルの設定が無効な場合。設置場所やディレクトリの限定的な使用によっては発生する。

  • 401 Authorization Required
    記号は使えません。英数字で。

  • 特定のIPからのみアクセスできるようにするには
    下記を.htaccessに追加する。

.htaccess
Satisfy any

order deny,allow
allow from xx.xx.xx.xxx/xx.xx.xxx.xxx

deny from all

参考

53
62
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
53
62