用語比較
認証と認可の違い
認証は「誰か」を確認すること、認可は「何をしてよいか」を決めること。ログインできても、すべての操作が許可されるわけではない。
- 難易度
- 初級
- 想定読者
- 開発者・情シス・初心者
- 所要時間
- 約7分
認証とは
ユーザーやシステムが主張する本人性を確認すること。パスワード、MFA、パスキーなどが関係する。
認可とは
認証済みの主体に対し、どのリソースへどの操作を許可するか判断すること。
違いの比較表
| 比較軸 | 認証 | 認可 |
|---|---|---|
| 問い | あなたは誰か | あなたは何をしてよいか |
| 例 | ログイン、MFA、SSO | 閲覧権限、編集権限、管理者権限 |
| 失敗例 | なりすましログイン | 一般ユーザーが管理機能を使える |
| 設計対象 | IdP、セッション、資格情報 | RBAC、ABAC、スコープ、ポリシー |
使い分け
- ログイン機能を作るときは認証と認可を別のテスト観点にする
- SaaS連携では、ログイン後に付与するスコープを最小化する
- 管理画面では、UI表示だけでなくサーバー側で認可を確認する
よくある誤解
- ログイン済みなら操作してよい、は誤り
- MFAを入れても過剰権限は解決しない
- OAuthは認証そのものではなく、主に認可の仕組みとして理解する必要がある