私はマルチテナントデータベース(MySQL、Java JDBC)を使ってプロジェクトを進めています。各テナントは「グループ」とみなされ、各「グループ」には複数の「ユーザー」があります。私の主な混乱は、これをどのように保護するのが最善かということです。グループのメンバーは、別の資格情報ですべてログインしていても、そのグループのデータにしかアクセスできません。ユーザーとユーザーのグループに安全なアクセスを持つWebアプリケーション
グループベースのログインをしていただけの場合、グループごとに1つのスキーマがあり、各スキーマにアクセスできるデータベースユーザーが1人です。これにより、そのグループのパスワードがなくても誰もそのスキーマにアクセスできないため、アクセスが完全に制限されるようになります。
ユーザーとは、「アプリケーションユーザー」と呼んでいるものが複雑になります。各アプリケーションユーザーはグループに関連付けられ、そのアプリケーションユーザーがログインすると、関連付けられているグループにアクセスする必要があります。本質的に、アプリケーションユーザーとしてログインし、データベースユーザーの資格情報が与えられます。
今のところ、このアイデアは扱いにくく、安全ではないようです。 JDBCアプリケーション層がデータベースレベルのユーザーアカウントへのアクセスを許可する方法がある場合、バイパスが容易になるため、そのセキュリティは無意味になります。
私はこの種の環境をどのように最高に保護するかについてのガイダンスを探していますね。ありがとうございました。
私はこの設定に特有の何も表示されません。すべてのレコードがユーザーとテナントの関係になっているテナント表を持っているだけです(あるユーザーが複数のテナントに関連付けられている可能性があります)。それ以外の場合は、単一のテナント設定と同じセキュリティを使用します。 –