ひとことで言うと
認可は、確認できた相手に「どこまでしてよいか」を決める権限の線引きです。
同じサービスに入れても、一般ユーザーと管理者では見られる画面やできる操作が違うことがあります。 この「入れるかどうか」ではなく「入ったあとに何ができるか」を決めるのが認可です。
たとえ話でもう少し詳しく
認可は、受付で渡される入館証に似ています。
- 本人確認が終わったあとで、入館証が渡される
- その入館証には、入ってよい部屋や使ってよい設備の範囲が決まっている
- 同じ建物に入っていても、会議室までの人もいれば、サーバールームまで入れる人もいる
システムでも同じです。 本人確認が済んだあと、その人が「閲覧だけできるのか」「編集もできるのか」「管理機能まで使えるのか」を決めます。 この権限の割り当てが認可です。
よく出る場面・使いどころ
- 一般ユーザーは閲覧だけ、管理者は編集もできるようにしたいとき
- 社内ツールで部署ごとに見える情報を分けたいとき
- APIごとに、読み取り専用か更新可かを分けたいとき
- 同じログイン済みユーザーでも、有料プランだけ特定機能を使えるようにしたいとき
実務で気にするポイント
- 認証と認可を混ぜず、誰かの確認と権限設定を分けて設計する
- 権限は広く配りすぎず、必要最小限から始める
- 役割変更や退職時に、権限の見直しや削除をすぐできるようにする
- 画面だけでなく、APIや裏側の処理でも同じ権限制御をかける
注意: 認可は「何をしてよいか」を決める仕組みです。相手が本当に本人かどうかを確かめる役割までは持たないので、認証とセットで考える必要があります。