認証と認可の違いとは?

認証は「あなたは誰か」を確認することです。認可は「その人に何を許可するか」を決めることです。ログインできることと、すべてのデータを見られることは同じではありません。

概要

認証と認可は、セキュリティや業務システムでよく出てくる言葉です。

似ていますが、役割は違います。認証は「誰なのか」を確認すること。認可は「何をしてよいのか」を決めることです。

この2つを混ぜると、ログインできる人なら何でもできる、という危ない設計になりやすくなります。

認証は、誰なのかを確認すること

認証は、利用者が本人であることを確認する処理です。

IDとパスワード、メール認証、多要素認証、SSO、パスキーなどは認証の文脈で使われます。

ログインに成功するということは、システムが「この人は本人らしい」と判断した状態です。

認可は、何を許可するかを決めること

認可は、認証された利用者に対して、どの操作やデータアクセスを許可するかを決める処理です。

一般ユーザーは自分のデータだけ見られる。管理者は全体を見られる。経理担当は請求情報を更新できる。こうした権限の制御が認可です。

APIでは、スコープやロールによって、呼び出せる操作が制限されることがあります。

ログインできることと権限があることは違う

よくある誤解は、ログインできるなら何でも見てよい、という考え方です。

実務では、ログイン後にも権限チェックが必要です。部署、役割、契約状態、担当範囲によって、見せるデータや操作できる範囲は変わります。

特に業務データでは、認証より認可設計の方が難しいこともあります。

まとめ

認証は、誰なのかを確認することです。認可は、何を許可するかを決めることです。

ログインできることと、全データを見られることは同じではありません。

業務システムやAPIでは、本人確認と権限管理を分けて設計することが大切です。