BASIC認証

読み:ベーシックにんしょう
外語:Basic Authentication
品詞:名詞

Webサーバで、ID/パスワードによるアクセス制限を行なう際に一般的に使われている方法。

Apacheの場合、.htaccessファイルなどに必要情報を記述して利用することになるが、比較的簡単なため、よく利用されている。

IDとパスワードは、アクセス制限が掛けられたファイルにアクセスするたびに問い合わせることになる。つまりWebサーバ側はあくまでモードレスであり、サーバ側はパスワードの認証状況等はキャッシュしない。代わりにWebブラウザがキャッシュすることが多い。この仕様のため、1ファイルアクセス毎にIDとパスワードがネットワーク上を流れることになるので注意が必要である。

具体的な流れは、まずWebブラウザ等のユーザエージェントが目的のファイルにアクセスするところから始まる。

クライアントからの要求に対し、Webサーバは

401 Authorization Required

を返信し、認証が必要である旨を伝える。

ここで認証に対応したWebブラウザはダイアログ等を表示して、IDとパスワードの入力をユーザに求め、そのID・パスワードをHTTPのヘッダに追加して再びWebサーバにアクセスする。

もし認証が成功すれば、Webサーバは

200 OK

として、通常通りに要求されたファイルを送信し、さもなくば401を再返信する。

一般的には、Webブラウザは数回連続して401を受信すると認証不能として処理し、401としてWebサーバから送られたHTMLを表示することが多い。

つまり、1ファイルを得るために、リクエスト・レスポンスの交信が2回行なわれている。

なお、BASIC認証ではIDとパスワードは:で繋げ、base64で符号化してから、HTTPのAuthorization:ヘッダに格納する。