はじめに
私がいる現場のシステムでは、検証環境にのみBasic認証が利用されております。
テストのために一部の画面やBLに対してこれをを外したりすることもあったので、
そもそもBasic認証(基本認証と呼ばれることも)とは何だろう?と思いまとめてみました。
Basic認証とは
Webサーバーで利用できる簡易的な認証方式で、
主にWebサイトの特定のページや階層に対するアクセスを制限するために利用します。
また、IDとpasswordを入力するだけで認証することができます。
Basic認証の特徴
- Base64でエンコードして送信してやりとりする
- Base64なのでセキュリティ的には弱い
- 「
.htaccess
」と「.htpasswd
」を作って、ログイン情報に関するコードをそれぞれに記述するだけで設定可能
よく利用されるシーンとしてはクライアントに公開目前のサイトや、
仲間内メンバーなどでしか使わない簡易的なサイトなどが多いようです。
メリット
- ログイン情報がブラウザに記憶される
- Cookie情報が残っている限りは認証が有効
- アクセス制限がディレクトリ単位で可能
⇒特定の画像やPDFファイル、ビジネスロジックにかけることも可能です - ファイルを置くだけでも設定可能
⇒レンタルサーバーなどで利用制限がある場合はファイル作成自体ができないこともあるので注意
デメリット
- セキュリティが弱い
⇒Base64でエンコードして送信しているので、データが暗号化されないままやり取りされます。 - 同一サーバー内のディレクトリのみで複数のサーバーに横断することは不可
- 検索で表示不能(クローラーもアクセスできなくなる)
⇒SEOとしての効果は期待できません。
Basic認証設定の流れ
認証をかけたいディレクトリに.htaccessファイルと.htpasswdファイルを作成します。
AuthType: 認証方式を指定
AuthName: 任意の認証名
AuthUserFile: .htpasswdファイルの場所
require: 認証範囲(valid-userですべてのユーザーに認証を表示させる)
AuthUserFile /home/hogehuge/.htpasswd
AuthName "input ID and Password"
AuthType Basic
require valid-user
IDとパスワードのセットで記載します。
複数行記載すれば、複数のID,passwordを使用可能です。
userId:password
まとめ
これを設定する側としてファイルを作成したり修正することが今後あるかはわからないですが、
認証方式の1つとして理解することができたことはよかったと思います。
もしBasic認証についてざっと知っておきたい方がいらっしゃれば、
本記事を参考にしていただけると幸いです。