認可とは
認可は、認証済みの利用者や機器に、どの操作やデータ利用を許可するか決める処理です。英語ではauthorization(オーソライゼーション)といいます。
同じサービスへログインできる利用者でも、自分の文書は編集できる、共有文書は閲覧だけできる、管理画面は開けない、という差があります。これは本人確認の強さではなく、資源と操作に対する認可の違いです。
認証は主体を確かめ、認可は「その主体が、この資源へ、この操作を、今行ってよいか」を決めます。順番は近くても、答える質問は別です。

認可判断を構成する六つの要素
ロールと所有権は別の軸
RBAC(Role-Based Access Control/ロール・ベースド・アクセス・コントロール)は、編集者、閲覧者、管理者などの役割へ権限をまとめます。人が異動したときに役割を替えればよく、個別設定の散乱を減らせます。
ただし「編集者なら全利用者の文書を編集できる」としてはいけない場面があります。そこで所有者ID、所属組織、公開範囲などの属性も照合します。URLの文書番号だけを変えて他人の記録を読めないよう、要求ごとに対象との関係を確認します。
見えないボタンと、実際の拒否は別
権限のないボタンを画面から隠すのは、誤操作を減らすための表示設計です。しかし利用者はHTTP要求を直接作れます。認可は必ずデータや処理を提供するサーバー側でも行います。
一覧取得、詳細表示、更新、ファイルの直接URL、検索結果、書き出し、WebSocketメッセージなど、入口が変わっても同じ規則を適用します。古いキャッシュや署名付きURLにも期限と対象範囲が必要です。
最小権限と拒否を既定にする
必要な操作だけを許す最小権限にすると、アカウントや端末が侵害されたときの影響を狭められます。新しい機能や資源を追加したとき、規則がまだない対象は許可ではなく拒否にします。
決定の記録には、主体、資源、操作、結果、適用した方針を残します。ただし秘密情報や本文を過剰にログへ書かず、監査できる情報量とプライバシーを両立させます。
認可エラーの調査では「ログイン済みか」だけでなく、どの主体IDが、どの資源IDへ、どの操作を要求し、どの規則で拒否されたかを順に見ます。
認可の定義とaccess control用語の確認資料:NIST Computer Security Resource Center「Authorization」