HTTPサーバーとWeb開発

96. Basic認証とフォーム認証の違い

Basic認証フォーム認証 の違いで一番に挙げられるのが、

Webアプリケーション では、ほとんどの場合 Basic認証 ではなく、フォーム認証 が使用されている。
なぜ フォーム認証 が選ばれる場合が多いのか?
それは Basic認証 では上記のような機能がないことが大きな要因である。

ただ全てにおいて フォーム認証 が適している訳ではなく、Webシステムの規模、仕様等を考慮した上でどちらを
使用するか選択するのが賢明である。

■ シングルサインオンについて

Basic認証 は、HTTP通信 の認証方式でありサーバーのファイルディレクトリに対して制限をかける。
ということは、Basic認証 されたユーザーはそのサーバーのドメイン内でしか効力がないのである。
異なるサーバー ( ドメイン間 ) にアクセスするには、再び Basic認証 を行なう必要があるのである。
フォーム認証 であれば、HTTP通信の認証方式ではなく、あくまでも リクエストパラメータ、または
cookie情報
を使用し認証をするので、ドメイン間でのアクセス制限はなく一度初回認証すれば、
永続的にそのユーザーで持ちまわることができるのである。

ただ Webアプリケーション が 単一サーバー でのみ稼動するのであれば、シングルサインオン は必要なく
Basic認証 で十分である。

■ ログアウトについて

ログアウトの機能 については、「 画面を閉じ終了させる 」、「 ログインした情報をクリアする
といった二つの機能が重要となる。

Basic認証 であれば、ブラウザーの×ボタン ( 閉じる ) を押すことで Basic認証 の
ユーザーID / パスワード情報 はクリアされ画面が閉じるられる。
非常にシンプルな仕組みであり、ユーザーの使用方法をきっちりと運用マニュアル等で管理
できるのであれば Basic認証 でも十分であると言える。
フォーム認証 であれば、ログアウトボタンを押すことによりサーバーで保持しているログイン情報を
明示的にクリアしログアウトしたということをユーザーに認識させ、誰がいつ ログイン / ログアウト
したか足取りもデータとして履歴管理を行うこともできる。

Webアプリケーション を構築する上で、認証は 非常に大きな割合を占める。
ただし構築する Webシステムの規模、仕様、開発工数、ユーザーの ( 運用 ) レベルを考慮し、
どちらの認証方式が適しているが選択することが重要である。