忍者ブログ

エンジニア初心者の備忘録

エンジニア初心者が躓いたことハマったことを公開します!

.htaccessによるベーシック認証(Basic認証)について

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

コメント

ただいまコメントを受けつけておりません。

.htaccessによるベーシック認証(Basic認証)について

今回は、.htaccessによるベーシック認証(Basic認証)の方法について書き留めておきます。


まず、ベーシック認証(Basic認証)とは、

Webサイトの閲覧に使うプロトコル「HTTP」が備える、最も基本的なユーザ認証方式。

アクセスの制限されたWebページにアクセスしようとすると、Webブラウザでユーザ名とパスワードの入力を求め、サーバでアクセスを許可しているユーザに一致すると、ページを閲覧することができる。

こ のとき、ユーザ名とパスワードは暗号化やハッシュ化がされていない生の状態(クリアテキスト、プレーンテキスト)で送受信されるため、簡単に盗聴・改ざん されてしまう。どのWebサーバもWebブラウザも対応しており、簡単に利用することができるが、あくまで簡易な方式だという認識が必要であり、重要な データの保護に利用してはならない。
『BASIC認証 【 基本認証 】 basic authentication / ベーシック認証 / HTTP基本認証』

下記の様にユーザー名とパスワードを求めるダイアログでユーザー認証が必要となります(下記はfirefoxの場合)。




また、このベーシック認証を行った場合の特徴を大きく下記3つにまとめます。

アクセス制限は検索エンジンのクローラーもブロックする
ユーザー認証はブラウザを終了するまで有効
IDやパスワードはブラウザに記憶できる


それでは、下記にLinuxコマンドで行うベーシック認証の手順を書き留めておきます。



①.htpasswdを作成する

.htpasswdとは、ベーシック認証に使用されるユーザ名とパスワードが記述されたファイルです。
書式は、「ユーザ名:パスワード」となります。
ファイルへのアクセス制御を行いたいファイルがあるディレクトリが.htaccessと.htpasswdを設置する場所となります。

htpasswd -b -c /[htpasswdを設置する場所のパス]/.htpasswd [追加するユーザ名] [パスワード]

ちなみに作成した.htaccessの中を見ると、下記の様に「ユーザー名:パスワード」で1行記載されています。
パスワードは暗号化されています。

root:cwbaE1SGialpo



.htaccessを作成する

.htaccessとは、Webサーバで使用できる、Webサーバの動作をディレクトリ単位で制御するためのファイルです。
ファイルへのアクセス制御を行いたいファイルがあるディレクトリに.htaccessと.htpasswdが設置する場所となります。

vim .htaccess

これで、.htaccessというファイルが作成され開きますので下記を記載します。

AuthType Basic
AuthName "Input your ID and Password."
AuthUserFile /home/[ドメイン名]/[フォルダ名]/.htpasswd
require valid-user

記載する内容は次の通りです。

AuthType
 認証方式の指定。
 今回は、ベーシック認証なので「Basic」と指定。
AuthName
 認証画面に表示されるメッセージ。基本的に日本語(全角文字)は避け、半角英数字を記入。
AuthUserFile
 作成済みのパスワードファイルのパスを指定。
require
 アクセスを許可するユーザーを指定。
 「valid-user」とは、パスワードファイルに含まれるすべてのユーザーに許可することを意味する。


※注意点
なお、注意点として既に.htaccessが存在しないかを、.htaccessなどの隠しファイル (ディレクトリ)も含めた一覧を表示する下記コマンドで確認します。

ls [ファイルへのアクセス制御を行いたいファイルがあるディレクトリ] -a

下記の様に、表示されます。

[root@localhost test]# ls -a
.  ..  .htaccess  .htpasswd  index.php

.htaccessがある場合には、まず、.htaccessを開きます。

vim .htaccess

開いたら、既存の記述の最後に、上記と同じ下記記述を追加します。

AuthType Basic
AuthName "Input your ID and Password."
AuthUserFile /home/[ドメイン名]/[フォルダ名]/.htpasswd
require valid-user



httpd.confを編集する

もし、ベーシック認証ができない場合は、Apacheの設定を変更します。
Apacheの設定ファイル、/etc/httpd/conf/httpd.confには、.htaccessファイルを使用するように設定します。
httpd.confファイルのAllowOverrideを、下記のようにNoneからAllへ変更します。

vim /etc/httpd/conf/httpd.conf

#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
#   Options FileInfo AuthConfig Limit
#
    AllowOverride None


   ↓

#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
#   Options FileInfo AuthConfig Limit
#
    AllowOverride All

その後、Apacheの再起動を行います。

sudo service httpd restart

これで、設定が反映されます。

以上です!




【参考サイト】
『ApacheでBasic認証を設定する方法』
『基本認証でアクセス制限をかける方法』
『【Linux】コマンドで.htpasswdにユーザを追加してパスワードを設定する方法』
『.htaccess による認証用 パスワード暗号化ツール』
『lsコマンドにオプションをつけて隠しファイル(フォルダ)を表示する方法(Linux)』
PR

コメント

プロフィール

HN:
プラムザ 太郎
性別:
非公開

P R