Basic認証とはどんな認証方法?特徴や設置方法を解説!

Basic認証とはどんな認証方法?特徴や設置方法を解説!のアイキャッチイメージ

Basic認証とは

Basic認証とは、特定の利用者にのみwebコンテンツを利用してもらう為の、最も簡単で基本的な認証方法の1つです。basic認証を設置するには、ApacheというWebサーバの設定ファイルである.htaccessというものを作成して設定する必要があります。今回は初心者向けの設置方法ということで、自力で.htaccessファイルを作成してBasic認証を設置する方法だけではなく、サーバの設定パネルを操作してBasic認証を設置する方法も解説します。

ApacheでのBasic認証を設置する方法

本記事では、ApacheというWebサーバの設定ファイルである.htaccessを使った、自力での実装方法について解説します。Apache以外の、さまざまなWebサーバでもBasic認証を活用することは可能です。

.htaccessが使えるかどうかを調べる

まずは.htaccessファイルが使用可能なレンタルサーバかどうかを調べましょう。有料のレンタルサーバであれば大抵の場合は使用可能です。ほとんどの場合、サーバのヘルプページなどに記載があります。見つからない場合は、サーバの管理会社へ直接連絡をして調べてみることをおすすめします。

なお、有料サーバの場合、自力で.htaccessファイルを作成しなくてもサーバパネルを使ってBasic認証を設置できる場合があります。本記事でもXサーバの設定方法について後述していますので、Xサーバをご利用の方はそちらをご覧ください。

.htaccessの作成方法

前述した通り、サーバ内に.htaccessというファイルを作成することで、Basic認証機能をサイトに持たせられます。手順としては、「.htaccess」と「.htpasswd」という2つのファイルを作成してサーバに設置することで完了します。まずは、.htaccessの作り方から解説します。記述する内容は、たった4行だけなので、初心者でもそう難しい内容ではないでしょう。

記述する内容は、①AuthType、②AuthName、③AuthUserFile、④requireの4項目です。.htaccessと.htpasswdは、どちらもテキストエディタから作成可能です。Windowsのメモ帳機能からも作成できます。保存する際は、.htaccessと.htpasswdという名前で保存しましょう。保存形式が.txtにならないよう、拡張子なしで保存されるように注意してください。

.htaccessの記述内容と記述例

先に記述例をご提示します。そのままコピー&ペーストを使用して貼り付けて頂いても構いません。AuthUserFileだけは、正しい位置をフルパスで指定してあげる必要がありますのでご注意ください。

(記述例)AuthType BasicAuthName “ID/PASS”AuthUserFile “/home/www/.htpasswd“require valid-userAuthTypeは、認証方法の宣言です。そのままBasicと入力すれば問題ありません。AuthNameは、認証時に表示される文言を指定する項目です。日本語以外を入力する方が無難であるとされているので、英文字で入力することをおすすめします。

AuthUserFileは、htpasswdがどこに置かれているのかを指定する項目です。指定はフルパスで入力しましょう。requireは、.htaccessに記載されたIDのうち認証を求めるユーザーを定義する項目です。こちらもvalid-userをそのまま入力して問題ありません。valid-userと指定すると、すべてのユーザーを対象にできます。

.htpasswdの記述内容と注意点

続いて.htpasswdの記述内容をお伝えします。こちらはたった1行で使えるようになります。記述量が少ないので難しくはないでしょう。記述例は以下のようになります。

(記述例)ユーザーIDがadmin、パスワードがtestの場合。admin:test上記のように記述しますが、注意点もあります。そのままパスワードを入力すると第三者に読み取られてしまう危険性があり、サーバーのセキュリティによってBasic認証が機能しなくなる可能性があるという点です。脆弱性については後の章でも解説しています。

対策として、パスワードを暗号化しておくことをおすすめします。暗号化する為のツールは、Google検索で「Basic認証 暗号化」と検索するとたくさん出てきます。そちらを使って暗号化されたパスワードを記述するようにしましょう。

(暗号化した場合の記述例)admin:$apr1$8juKi4oI$6U6yL5yg2mqLBE2AD8SJq1

下記のリンクに暗号化ツールの一例を提示します。出力されたパスワードをそのままコピー&ペーストで貼り付けるだけで使用可能です。また、.htaccessで指定した場所に正しく.htpasswdを設置するようにしましょう。指定したパスと.htpasswdの設置場所が一致していないとBasic認証が機能しません。

XサーバでのBasic認証を設置する方法

より初心者向けに、サーバが用意しているサーバパネルを使用した設置方法も解説します。ここでは、幅広く利用されているXサーバで、Basic認証を設置する方法について解説します。Basic認証の設置は、大きく分けて4手順で完了します。

手順としては、①アクセス制限をクリック、②使用するドメイン名を選択する、③アクセス制限をONにする、④アクセス制限のユーザーを設定する、です。

これらの手順は、Xサーバのサーバパネルにログインして操作します。手順①から順番に解説していきます。まずは、サーバパネルの中にある「ホームページ」という項目群の中にある「アクセス制限」ボタンをクリックして下さい。

続いて手順②の解説です。「アクセス制限」をクリックすると、ドメイン名を選択する画面へ移行します。お使いのドメインを選択して次の画面へ移行してください。

手順③の解説です。フォルダ名、現在の状態、アクセス制限、ユーザー設定という項目が表示されています。フォルダ名をクリックし、現在のURLに表示されているアドレスを確認します。アクセス制限をかけたいURLと相違がなければ、アクセス制限のラジオボタンをONにしましょう。フォルダのアイコンに赤い鍵マークが付与されます。

最後の手順④です。アクセス制限をかけたフォルダの「ユーザー設定」をクリックして画面を移行させましょう。移行先の画面で、IDとパスワードを設定します。「確認画面へ進む」のボタンを押すと、入力内容の確認画面が表示されます。内容に問題がなければ「追加する」をクリックします。これでBasic認証の設置は完了です。アクセス制限をかけたページへ実際にアクセスをしてみて、無事Basic認証が反映されていることを確認してみましょう。

Basic認証の仕組み

具体的には、ユーザーがBasic認証でアクセス制限されたコンテンツにリクエストを送ると、サーバ側は401というエラーを返します。これはユーザーのIDとパスワードの送信を要求するエラーです。ユーザーは、ブラウザに表示されたIDとパスワードの入力フォームに、決められたIDとパスワードを入力してサーバー側へと送信します。すると、サーバー側は保存された情報とID・パスワードを照合してアクセスを許可もしくは拒否するという仕組みです。

Basic認証の脆弱性

Basic認証は、古くから用いられている簡単な方法なので、セキュリティレベルがあまり高くありません。通信途中で第三者に見られてしまう可能性もあります。原因は、認証情報が暗号化やハッシュ化がされていないからです。その為、Basic認証を暗号化する為に、暗号化ツールを使用することをおすすめします。暗号化ツール自体は、無料のWebサービスとしてさまざまなものがネット上に存在します。

Basic認証を設置してみよう

結論としては、「.htaccess」と「.htpasswd」を設置することで、初心者でも簡単にアクセス制限をかけられるのがBasic認証です。Xサーバーなどでは、それよりも簡単にサーバパネルを操作して設置することもできます。公開したWebコンテンツを悪用されないようにするためにも、管理画面などにはBasic認証を設置してみましょう。また、Basic認証を設置したページは、Google検索にも登録されなくなりますので、テスト用に作成したコンテンツに設置するのも有効です。本記事を参考に、ぜひ挑戦してみてください。

インフラエンジニア専門の転職サイト「FEnetインフラ」

FEnetインフラはサービス開始から10年以上『エンジニアの生涯価値の向上』をミッションに掲げ、多くのエンジニアの就業を支援してきました。

転職をお考えの方は気軽にご登録・ご相談ください。