Basic認証(ベーシックにんしょう、Basic Authentication)とは、HTTPで定義される認証方式(HTTP認証)の一つ。基本認証と呼ばれることも。

Basic認証では、ユーザ名とパスワードの組みをコロン ":" でつなぎ、Base64エンコードして送信する。このため、盗聴や改竄が簡単であるという欠点を持つが、ほぼ全てのWebサーバおよびブラウザで対応しているため、広く使われている。

盗聴や改竄を防ぐため、後にDigest認証というユーザ名とパスワードをMD5でハッシュ化して送る方法が考えられた。

通信の流れ

編集

典型的なBasic認証におけるHTTPクライアントとHTTPサーバの間の通信を紹介する。 だいたいの流れは以下のようになる。

  1. クライアントは認証が必要なページをリクエストする。しかし、通常ここではユーザ名とパスワードを送っていない。なぜならばクライアントはそのページが認証を必要とするか否かを知らないためである。
  2. サーバは401レスポンスコードを返し、認証領域 (authentication realm) や認証方式 (Basic認証) に関する情報をクライアントに知らせる。
  3. それを受けたクライアントは、認証領域(通常は、アクセスしているコンピュータやシステムの簡単な説明)をユーザに提示して、ユーザ名とパスワードの入力を求める。ユーザはここでキャンセルすることもできる。
  4. ユーザによりユーザ名とパスワードが入力されると、クライアントはリクエストに認証ヘッダを追加して再度送信する。
  5. 認証に成功すると、サーバは認証の必要なページのリクエストを処理する。一方、ユーザ名やパスワードが間違っていた時には、サーバは再び401レスポンスコードを返す。それによりクライアントは再びユーザにユーザ名とパスワードの入力を求める。

編集

以下に、認証に成功した場合の例を示す。(番号は上記「通信の流れ」と対応させてある)

1.認証を伴わないリクエスト:

GET /private/index.html HTTP/1.1
Host: example.com

2.認証が必要であることを示すサーバのレスポンス:

HTTP/1.1 401 Authorization Required
Date: Wed, 11 May 2005 07:50:26 GMT
Server: Apache/1.3.33 (Unix)
WWW-Authenticate: Basic realm="SECRET AREA"
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=iso-8859-1
 
 (ここに人間が読めるエラーメッセージが入る)

3.(クライアントによる提示、およびユーザによる入力):

<通信は行われない>

4.認証を伴うリクエスト (ユーザ名 "root"、パスワード "password"):

GET /private/index.html HTTP/1.1
Host: example.com
Authorization: Basic cm9vdDpwYXNzd29yZA{{=}}{{=}}

5.サーバのレスポンス

HTTP/1.1 200 OK
Date: Wed, 11 May 2005 07:50:26 GMT
(以下略)

関連項目

編集

外部リンク

編集
  • RFC 9110 - HTTP Semantics
  • RFC 7617 - The 'Basic' HTTP Authentication Scheme
  • 旧式となった規定
    • RFC 1945 - Hypertext Transfer Protocol -- HTTP/1.0
    • RFC 2616 - Hypertext Transfer Protocol -- HTTP/1.1
    • RFC 7235 - Hypertext Transfer Protocol (HTTP/1.1): Authentication
  • RFC 2617 - HTTP Authentication: Basic and Digest Access Authentication

📚 Artikel Terkait di Wikipedia

Webhook

Includes Basic Authentication Support”. DocuSign. DocuSign, Inc.. 2020年1月15日閲覧。 “the Connect notification service has been updated to support the Basic Authentication

Digest認証

HTTP Authentication: Basic and Digest Access Authentication RFC 3310 - Hypertext Transfer Protocol (HTTP) Digest Authentication Using Authentication and

HTTP認証

前述のリクエストヘッダー・レスポンスヘッダーの上で、様々な認証方式を使用できる。個々の認証方式を認証スキーム (authentication scheme) と呼ぶ。 例えば以下のような認証スキームが存在する。 Basic Basic認証。 Digest Digest認証。 Bearer Bearerトークンを用いるベアラー認証。

ノンス

on Nonce with an implementation RFC 2617 - HTTP Authentication: Basic and Digest Access Authentication RFC 3540 - Robust Explicit Congestion Notification

コンピュータ略語一覧

コンピュータグラフィックス CGI Common Gateway Interface CHAP Challenge-Handshake Authentication Protocol CISC Complex Instruction Set Computer CJK Chinese Japanese

認可 (セキュリティ)

en:Atomic Authorization もある。 Certification (証明)、Authentication (認証)、Authorization (認可)との基本的な概念の違いを以下にまとめる。 なお、この3つの概念が密接に連携しており、独立した分類が難しい例もある。

X.509

(TLS/SSL) S/MIME IPsec SSH ‐ RFC 6187による拡張仕様 スマートカード HTTPS Extensible Authentication Protocol LDAP Trusted Computing Group (TNC TPM NGSCB) CableLabs (North

コンピュータ用語一覧

Autoconf Automake BASIC (Beginners All purpose Symbolic Instruction Code) Basic Input/Output System (BIOS) BBS(電子掲示板) BIOS (Basic Input/Output System)