タラバガニー設計局stalins.clubNOTE/notes/authorization-as-program-structure-moc

認可をプログラム構造で表す研究 調査ノート

Web framework の middleware / guard / policy API を離れ、「resource authorization をプログラム上で何として表現するか」を一次文献中心に整理するハブ。

Authority を「持っているもの」で表す

Authorization の成立根拠を値・証明として扱う

Authorization model を application code から分離する

普通の Web application へ落とすときの境界

ここまでの結論

「認可を boolean 以外で表す」という発想自体には豊富な先行研究がある。ただし、それらは一枚岩ではない。

reference / capability
proof / evidence
logical proposition in a type system
relationship data
PARC authorization query
cryptographic credential

はそれぞれ異なる保証を持つ。

特に Authorized<Resource> を object-capability と同一視するのは危険である。下流コードが unrestricted DB/repository を保持して resource を再取得できるなら authority は wrapper に閉じていない。逆に、wrapper を「ある時点で policy check を通った evidence」と割り切るなら、dependent type を持たない言語でも handler/service API 上で authorization precondition を可視化する設計として利用できる。

Web framework 側の比較は Webアプリのリソース認可パターン 調査ノート に分離してある。

▸ ノート一覧に戻る