認証・認可
要点
- 認証(Authentication)は「あなたは誰ですか」を確認することです。
- 認可(Authorization)は「あなたに何を許可しますか」を決めることです。
- この2つは似た言葉ですが役割が異なり、通常は認証のあとに認可が行われます。
認証とは(本人確認)
認証とは、システムを使おうとしている人が「本当に本人であるか」を確認する仕組みです。多くの場合、IDとパスワードの組み合わせが正しいかどうかで確認します。
認証に成功すると、システムは「この人はこのアカウントの持ち主である」と信頼できる状態になります。
🔑 身近な例会員制のお店で会員証を提示する場面に似ています。会員証を見せることで、お店は「この人は確かに会員本人である」と確認できます。これが認証です。
認可とは(権限の決定)
認可とは、本人確認ができた人に対して「何をどこまで許可するか」を決める仕組みです。同じサービスを使っていても、利用者ごとに許可される操作の範囲は異なります。
例えば、一般会員は自分の情報の閲覧しかできないが、管理者は他の利用者の情報も編集できる、といった違いは認可によって制御されています。
🔑 身近な例会員証のランクによってサービス内容が変わることに似ています。同じ会員証(認証済み)でも、ゴールド会員なら特別なラウンジに入れて、一般会員は入れない、というような違いが認可にあたります。
認証から認可までの流れ
実際のシステムでは、認証と認可は次のような順番で処理されます。
ID・パスワード入力
OK
OK
アクセス
もし認証で失敗すれば「誰かわからない」ためそこで止まり、認可で許可が出なければ「本人ではあるが権限がない」としてアクセスが拒否されます。
代表的な認証方式
認証の方法にはいくつか種類があり、組み合わせることで安全性を高められます。
パスワードだけに頼らず、複数の要素を組み合わせる多要素認証は、現場でも標準的に採用が進んでいる考え方です。
代表的な認可の仕組み
認可の設計でよく使われるのが「ロールベースアクセス制御(RBAC)」です。利用者を「役割(ロール)」ごとに分類し、その役割に応じて許可する操作を決めます。
よくある勘違いと注意点
認証と認可は言葉が似ているため混同されがちですが、「本人であること」と「何が許されるか」は別の問題です。認証を通ったからといって、すべての操作が許可されるわけではありません。
また、パスワードを複数のサービスで使い回すと、1つのサービスから漏洩した場合に他のサービスでも不正ログイン(認証の突破)が起きるリスクが高まります。認証情報の管理は、利用者側の心がけも重要です。
まとめ
認証は「誰であるかを確認すること」、認可は「何を許可するかを決めること」です。この2つがセットで働くことで、システムは安全に利用者ごとの権限を管理できます。
関連トピック: