Open7
django-oso 触ってみた
今回の要件がマルチテナントかつテナントごとに権限周りを高度に切り替えたいとのこと。
chatGPT に相談した上で別でサーバや外部サービスとの接続が不要で試しやすそうだったので、oso x django (django-oso) を触っていく。
比較対象としては OpenFGA や Oso Cloud もあったが別サーバを用意する・外部サービスを利用するランニングコストの確保が難しいと判断して“なし”とした
なお、Oso はすでに新規採用は非推奨となっており、今後は Oso Cloud を推しているので注意
django-prbac はどうやら機能が足りなそうであった(深くは確認していない)
マルチテナントの都合で docker on apple silicon macOS (feat. vscode DevContainer) で開発環境を構築していたが、対応する oso のビルドが pypi に公開されていないため一筋縄では行かないことが判明
一旦は Remote - SSH で Linux サーバに接続して開発するフローに変更
Django との統合のセットアップ手順:
Sample repositories:
マルチテナント構成・リアルタイム変更対応なので、Policy をモデル管理した上で、アクセスごとにポリシーを読み込むミドルウェアを作成
参考