2018年2月27日
【Basic認証】サイトにパスワードを設定する
web担当よしです。
制作中のサイトなどや会員制のサイトを作る際、サイトにアクセス制限を掛けたいことがあります。こうした場合パスワードを設定するのが一般的だと思いますので、その方法をメモしておきます。
レンタルサーバーによっては、サーバーの管理ページからパスワード設定をする事ができたり、またwordpressのサイトですとプラグインを使用する方法もありますが、ここでは「.htaccess」というファイルを使い「Basic認証」という認証機能をwebサイトに設定する方法を記載します。
必要なファイルを用意する
Basic認証を行うためには「.htaccess」と「.htpasswd」という2つのファイルが必要になります。
「.htaccess」とはウェブサーバーの設定を記述するファイルで「.htpasswd」はアクセス制限をするためのユーザー名と暗号化されたパスワードが記述されたファイルになります。
.htpasswdファイルの作り方
- 設定したいユーザー名とパスワードを決めます。
- ネット上のパスワードを暗号化するツールなどでコードを生成します。
- テキストエディタで新規ファイルを作成し、生成されたコードをペーストします。
- テキスト形式で保存します。拡張子はなしで良いかと思います。
.htaccessファイルの作り方
- ftpソフトでサーバーに繋ぎ、アクセス制限したいディレクトリに.htaccessのファイルがあれば、エディターで開きます、ファイルがなければ新規でテキストファイルを作成してください。.で始まるファイル名は不可視ファイルになるため、表示されない事があります。注意が必要です。
- 以下のようなコードを追記して保存します。
1 2 3 4 5 |
AuthUserfile /パスワードファイルのサーバー上の絶対パス/.htpasswd AuthGroupfile /dev/null AuthName "Please enter your ID and password" AuthType Basic require valid-user |
各項目の説明は以下の通りです。
- AuthUserfile:サーバーのルートディレクトリからの.htpasswdへのパスを指定します。絶対パスがわからない場合は下記のコードを記述したphpファイルを該当のディレクトリに置き、ブラウザからこのファイルにアクセスすれば判明します。
123<?phpecho __FILE__;?> - AuthGroupfile:グループのIDとパスワードのファイルのディレクトリの指定。Basic認証では必要ないため指定なしの意味の/dev/nullと記載します。
- AuthName:パスワード入力の際に表示される文言。なんでも良いですが、日本語ではだめなようです。
- AuthType:認証方法 BasicとDigest がありますが、ここではBasicです。
- require:アクセスを特定のユーザーに絞らない場合はvalid-userと記述します。
ファイルのアップロード
ftpソフトを使い.htaccess内に指定したディレクトリに上記の2ファイルをアップロードします。
アップロード後ブラウザからサイトにアクセスして、下記のようなダイアログが表示されれば、Basic認証を設定できたことになります。
.htpasswdを作成する際に決めたユーザー名とパスワードを入力して、サイトに入る事ができれば成功です。