HTMLフォーム認証

ウェブサイトがフォームによりユーザーエージェントから認証情報を収集して認証を行う技法

HTMLフォーム認証は、ウェブサイトフォームを使って、ユーザーエージェント(典型的にはウェブブラウザ)から認証情報(クレデンシャル英語版)を収集し、認証を行う技法である。単にフォーム認証とも呼ばれる。

ウィキペディアのログインフォーム

手順の概略 編集

典型的には、以下の手順となる。

  1. 認証していない状態のユーザーエージェントウェブサイトからウェブページを要求する。
  2. ウェブサイトは返答としてHTMLで書かれたウェブページをユーザーエージェントに渡す。このウェブページには、アカウント(ユーザー名あるいはEメールアドレスなど)・パスワードの入力を求めるフォームがあり、さらにログインや送信などと書かれたボタンが用意されている。
  3. 利用者はユーザー名とパスワードを入力し、ボタンを押す。
  4. ユーザーエージェントはフォームの入力内容をウェブサーバーに送信する。
  5. ウェブサーバー内で実行されているプログラムは検証と承認英語版を行う。成功したら、指定のアカウントとしてのセッションが開始される。

認証の方法として、パスワード以外にさらに追加の手順を課す多要素認証としたり、WebAuthnなどパスワードを用いない方法が採用されることもある。

コード例 (HTML) 編集

実際には、これに加えてクロスサイトリクエストフォージェリ (CSRF)への対策が必須である。クロスサイトリクエストフォージェリ#対策などを参照のこと。

<form method="POST" action="/login">
  <label>ユーザー名: <input type="text" name="username" autocomplete="username" required></label>
  <label>パスワード: <input type="password" name="password" autocomplete="current-password" required></label>
  <button type="submit">ログイン</button>
</form>

ウェブサーバーにおけるサポート 編集

フォーム認証は、一般的にウェブアプリケーションフレームワークによって提供される機能であるが、ウェブサーバーが機能を提供する例もある。

関連項目 編集

外部リンク 編集