Keito

© 2024 Keito

技術ブログとポートフォリオ

認証と認可の基礎

Webサービスのセキュリティの要である「認証」と「認可」について、 日常生活の例を交えながら分かりやすく解説します。

まず理解しよう:認証と認可の違い

認証(Authentication)

「あなたは誰ですか?」を確認するプロセス。本人確認のようなもので、IDとパスワードなどで身元を証明します。

日常の例:

銀行ATMでキャッシュカードと暗証番号を入力
スマホの指紋認証や顔認証でロック解除
会社の入館証をカードリーダーにかざす

認可(Authorization)

「何ができますか?」を決めるプロセス。認証された後、その人に何を許可するかを判断します。

日常の例:

社員証で入れるエリアが部署によって違う
動画配信サービスの無料会員と有料会員の違い
ファイルの読み取り専用と編集可能の権限

🏨 ホテルで例えると...

認証:フロントでチェックイン時に身分証明書を見せて本人確認
認可: 渡されたルームキーで入れる部屋が決まる(他の部屋には入れない)

知っておきたいセキュリティの基礎

パスワード管理

  • 8文字以上で大小英数字と記号を混ぜる
  • サービスごとに異なるパスワードを使用
  • パスワードマネージャーの活用を推奨
  • 定期的な変更より強固なパスワードが重要

セッション管理

  • ログイン状態を保持する仕組み
  • 一定時間操作がないと自動ログアウト
  • 共有PCでは必ずログアウトする
  • HTTPSでの通信で盗聴を防ぐ

フィッシング対策

  • URLが正しいか必ず確認
  • 不審なメールのリンクはクリックしない
  • HTTPSと鍵マークを確認
  • 二要素認証を有効にする

Cookie とトークン

  • Cookieはブラウザに保存される小さなデータ
  • セッションCookieとパーシステントCookie
  • トークンは認証情報を含む文字列
  • 適切な有効期限の設定が重要

アクセス制御

  • 最小権限の原則を守る
  • 役割ベースのアクセス制御(RBAC)
  • 定期的な権限の見直し
  • 監査ログの記録と確認

暗号化

  • 通信の暗号化(HTTPS/TLS)
  • パスワードのハッシュ化保存
  • 重要データの暗号化
  • エンドツーエンド暗号化の理解

🎯 まとめ

認証と認可は、デジタル世界の安全を守る重要な仕組みです。
認証で「誰か」を確認し、認可で「何ができるか」を制御することで、
安全で使いやすいサービスが実現されています。

日々利用するサービスでも、これらの技術が私たちの情報を守っています。