TERM 003
Authorization
「何をしてよいか」を決める境界
Authorization(認可)は、認証済みの主体が、対象のデータや操作へアクセスしてよいかを判定する仕組みです。役割、所属、所有関係、時刻などの条件から許可または拒否を決めます。
認証済みの相手に許可する操作を決める仕組みの全体像。
CONTENTSこの記事の目次+
QUICK OVERVIEW
30秒でつかむ
最小権限
必要な対象と操作だけを許可し、利用しない権限を持たせません。
判断規則
役割ベースや属性ベースなど、変更可能な規則として管理します。
サーバー側で強制
画面の非表示だけでなく、データを返す直前に必ず判定します。
01 — DEFINITION
Authorizationとは
何か
Authorization(認可)は、認証済みの主体が、対象のデータや操作へアクセスしてよいかを判定する仕組みです。役割、所属、所有関係、時刻などの条件から許可または拒否を決めます。
02 — HOW IT WORKS
仕組みを
3段階で見る
細部へ入る前に、入力から結果までの役割を順番に捉えます。
主体を受け取る
認証済みユーザーやサービスを特定する。
→規則と照合する
対象・操作・条件をポリシーへ当てはめる。
→許可を決める
許可された処理だけを実行し、結果を記録する。
Authorizationを理解するときの、最小の処理単位です。
03 — ESSENTIALS
押さえるべき
3つの要点
名前だけでなく、この3点の関係まで理解すると実装へつなげやすくなります。
最小権限
必要な対象と操作だけを許可し、利用しない権限を持たせません。
判断規則
役割ベースや属性ベースなど、変更可能な規則として管理します。
サーバー側で強制
画面の非表示だけでなく、データを返す直前に必ず判定します。
04 — REAL WORLD EXAMPLE
チームの請求書を閲覧する
ログイン済みユーザーが特定チームの請求書URLへアクセスします。
- 01
ユーザーと対象チームを特定する
- 02
チーム所属とbilling権限を確認する
- 03
許可時だけ請求書データを返す
05 — WATCH OUT
理解するときの
注意点
便利な仕組みほど、守備範囲と失敗の前提を明確にします。
URLを隠すだけでは守れない
識別子を推測して直接APIを呼ばれても、必ず同じ認可判定を行います。
拒否を基本にする
明示的に許可された条件以外は拒否する方が、設定漏れに強くなります。
IN ONE SENTENCE
Authorizationとは?
認証済みの相手に許可する操作を決める仕組み。
