0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

HTTP Basic Authenticationの概要と仕組み

Last updated at Posted at 2025-01-17

1. 基本概念

HTTP Basic Authenticationは、HTTPプロトコルに組み込まれた最も基本的な認証方式の一つである1。ユーザー名とパスワードによってクライアントの身元を確認する認証の仕組みであり、認可の機能は含まれない。

2. 主な特徴

  • シンプルで実装が容易な認証方式2
  • ほとんどのWebブラウザやHTTPクライアントで標準サポート2
  • ステートレスな認証方式(アクセスごとの認証情報送信)2
  • ディレクトリごとのアクセス制限設定が可能3

3. 認証フロー

初回アクセス時

  1. クライアントによる保護リソースへのアクセス1
  2. サーバーからの「401 Unauthorized」と「WWW-Authenticate」ヘッダー返信1
  3. ブラウザによる認証情報入力要求2
  4. 認証情報の処理:
    • ユーザー名とパスワードの「:」による結合1
    • 結合文字列のBase64エンコード1 4
    • 「Authorization: Basic」ヘッダーへの追加1
  5. サーバーによる認証検証とアクセス制御1

認証済みの場合

  1. クライアントによる保護リソースへのアクセス(Authorization: Basicヘッダー付き)
  2. サーバーによる認証情報の検証
  3. リソースへのアクセス許可

4. 実装例

認証情報の例(ユーザー名: user、パスワード: pass):

# 元の文字列
user:pass

# Base64エンコード後
dXNlcjpwYXNz

# HTTPリクエストヘッダー
Authorization: Basic dXNlcjpwYXNz

5. セキュリティ上の考慮点

  • 認証情報は単なるBase64エンコードであり、暗号化なし2 4
  • HTTPS未使用時の通信途中での盗聴リスク3
  • ブルートフォース攻撃への脆弱性3
  • 重要データの保護には不適3
  • HTTPS(SSL暗号化)との併用が必須3 5

6. 推奨される使用場面

  • 開発環境やテスト環境での一時的認証3
  • 内部ネットワークでの簡易的アクセス制御3
  • HTTPS確実使用環境での基本認証3
  • 高度な認証方式実装前の暫定措置3

参照
1 2 3 6 7 8 4 5

  1. https://www.keepersecurity.com/blog/ja/2024/03/08/what-is-basic-access-authentication/ 2 3 4 5 6 7 8

  2. https://www.aeyescan.jp/blog/basic-authentication/ 2 3 4 5 6

  3. https://www.shadan-kun.com/blog/measure/461/ 2 3 4 5 6 7 8 9 10

  4. https://qiita.com/SHOT0/items/878648bf619f775c9928 2 3

  5. https://qiita.com/SHOT0/items/cae08a65be065ba07acd 2

  6. https://www.winserver.ne.jp/column/about_basic-authentication/

  7. https://qiita.com/ooo-lang/items/f067c34146f889179652

  8. https://zenn.dev/mukkun69n/articles/e697d5b9589345

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?