認証・認可

要点

  • 認証(Authentication)は「あなたは誰ですか」を確認することです。
  • 認可(Authorization)は「あなたに何を許可しますか」を決めることです。
  • この2つは似た言葉ですが役割が異なり、通常は認証のあとに認可が行われます。

認証とは(本人確認)

認証とは、システムを使おうとしている人が「本当に本人であるか」を確認する仕組みです。多くの場合、IDとパスワードの組み合わせが正しいかどうかで確認します。

認証に成功すると、システムは「この人はこのアカウントの持ち主である」と信頼できる状態になります。

🔑 身近な例会員制のお店で会員証を提示する場面に似ています。会員証を見せることで、お店は「この人は確かに会員本人である」と確認できます。これが認証です。

認可とは(権限の決定)

認可とは、本人確認ができた人に対して「何をどこまで許可するか」を決める仕組みです。同じサービスを使っていても、利用者ごとに許可される操作の範囲は異なります。

例えば、一般会員は自分の情報の閲覧しかできないが、管理者は他の利用者の情報も編集できる、といった違いは認可によって制御されています。

🔑 身近な例会員証のランクによってサービス内容が変わることに似ています。同じ会員証(認証済み)でも、ゴールド会員なら特別なラウンジに入れて、一般会員は入れない、というような違いが認可にあたります。

認証から認可までの流れ

実際のシステムでは、認証と認可は次のような順番で処理されます。

ログイン
ID・パスワード入力
認証
本人確認
OK
認可
権限確認
OK
リソースへ
アクセス

もし認証で失敗すれば「誰かわからない」ためそこで止まり、認可で許可が出なければ「本人ではあるが権限がない」としてアクセスが拒否されます。

代表的な認証方式

認証の方法にはいくつか種類があり、組み合わせることで安全性を高められます。

パスワード認証最も一般的だが、使い回しや推測により突破されやすい。
多要素認証(MFA)パスワードに加えてSMSコードや認証アプリなどを組み合わせる。
生体認証指紋や顔など、本人固有の情報で確認する。

パスワードだけに頼らず、複数の要素を組み合わせる多要素認証は、現場でも標準的に採用が進んでいる考え方です。

代表的な認可の仕組み

認可の設計でよく使われるのが「ロールベースアクセス制御(RBAC)」です。利用者を「役割(ロール)」ごとに分類し、その役割に応じて許可する操作を決めます。

👑 管理者 全データの閲覧 設定の変更
🙂 一般ユーザー 自分の情報の閲覧・編集
👤 ゲスト 公開情報の閲覧のみ

よくある勘違いと注意点

認証と認可は言葉が似ているため混同されがちですが、「本人であること」と「何が許されるか」は別の問題です。認証を通ったからといって、すべての操作が許可されるわけではありません。

また、パスワードを複数のサービスで使い回すと、1つのサービスから漏洩した場合に他のサービスでも不正ログイン(認証の突破)が起きるリスクが高まります。認証情報の管理は、利用者側の心がけも重要です。

まとめ

認証は「誰であるかを確認すること」、認可は「何を許可するかを決めること」です。この2つがセットで働くことで、システムは安全に利用者ごとの権限を管理できます。

関連トピック:

🏠 トップに戻る