Open3

マルチテナント設計 B2Bアプリ設計

nassynassy

マルチテナントのデータ出入力を安全に行うための調査をする

  • そもそもアプリに必要な認可の種類が何かを確認する
  • DBカラムへの安全なアクセス方法を確認する
  • RLS
  • 認証機能とどのように連携できそうであるかを確認する
  • LowRevelSecurity をPython アプリケーションで扱う方法を調査する
    - ORM やフレームワークでどのように扱うか
    - Django にはオブジェクトレベルのアクセス権限があるからそれでも良いかも
  • DjangoGuardian
    - "インスタンス作者のみアクセス" 以外の方法があるかどうかを確認する
    - https://coderbook.com/@marcus/how-to-restrict-access-with-django-permissions/

事例を読んだ時点での評価

nassynassy

user の一時停止は実装しない方が良さそう -> 脆弱性になる
B2Bは基本的にチームの停止者のデータを扱えるように設計する。
停止して、復活させては脆弱性になり得る。-> 永久停止して、key 情報やメールアドレスは削除する。
無効化は OAuth , OIDC, SAML の根本から実施する必要がある。
ユーザー数変更リクエストとか欲しい