用語辞典・プライバシー・認証

認可

認可とは

認可は、認証済みの利用者や機器に、どの操作やデータ利用を許可するか決める処理です。英語ではauthorization(オーソライゼーション)といいます。

同じサービスへログインできる利用者でも、自分の文書は編集できる、共有文書は閲覧だけできる、管理画面は開けない、という差があります。これは本人確認の強さではなく、資源と操作に対する認可の違いです。

認証は主体を確かめ、認可は「その主体が、この資源へ、この操作を、今行ってよいか」を決めます。順番は近くても、答える質問は別です。

主体・資源・操作・周囲の条件を入力し、許可または拒否を返す画面の表示制御ではなく、資源を渡す側で決定する
認証済み利用者が複数の文書や管理資源へ異なる操作を要求し、中央の方針判定が役割・所有関係・状況を確認して許可と拒否を返すピクトグラム図解
図1「管理者だから全部許可」だけではなく、対象資源の所有者、操作、時刻、端末状態など複数条件から判断できます。

認可判断を構成する六つの要素

Subject誰が要求したか

利用者、サービスアカウント、機器、別サービスなど、認証で確かめた主体です。

Resource何を使おうとしたか

文書、写真、API、管理設定、他人の記録など、保護する対象です。

Action何をしようとしたか

閲覧、作成、変更、削除、共有、実行では必要な権限が異なります。

Contextどの状況か

時刻、接続元、端末の管理状態、追加認証の有無、組織所属などを条件にできます。

Policyどの規則を適用するか

役割、所有関係、属性、同意、契約状態などを一貫した規則へします。

Decision許可・拒否・追加確認

単純な二択だけでなく、再認証、承認者の同意、情報の一部だけ返す判断もあります。

ロールと所有権は別の軸

RBAC(Role-Based Access Control/ロール・ベースド・アクセス・コントロール)は、編集者、閲覧者、管理者などの役割へ権限をまとめます。人が異動したときに役割を替えればよく、個別設定の散乱を減らせます。

ただし「編集者なら全利用者の文書を編集できる」としてはいけない場面があります。そこで所有者ID、所属組織、公開範囲などの属性も照合します。URLの文書番号だけを変えて他人の記録を読めないよう、要求ごとに対象との関係を確認します。

見えないボタンと、実際の拒否は別

権限のないボタンを画面から隠すのは、誤操作を減らすための表示設計です。しかし利用者はHTTP要求を直接作れます。認可は必ずデータや処理を提供するサーバー側でも行います。

一覧取得、詳細表示、更新、ファイルの直接URL、検索結果、書き出し、WebSocketメッセージなど、入口が変わっても同じ規則を適用します。古いキャッシュや署名付きURLにも期限と対象範囲が必要です。

最小権限と拒否を既定にする

必要な操作だけを許す最小権限にすると、アカウントや端末が侵害されたときの影響を狭められます。新しい機能や資源を追加したとき、規則がまだない対象は許可ではなく拒否にします。

決定の記録には、主体、資源、操作、結果、適用した方針を残します。ただし秘密情報や本文を過剰にログへ書かず、監査できる情報量とプライバシーを両立させます。

認可エラーの調査では「ログイン済みか」だけでなく、どの主体IDが、どの資源IDへ、どの操作を要求し、どの規則で拒否されたかを順に見ます。

認可の定義とaccess control用語の確認資料:NIST Computer Security Resource Center「Authorization」

関連用語