Spring 3.0(Spring MVC、Spring Security、Spring Roo、Hibernate)を使用してサービスとしてソフトウェアを作成しています
柔軟なアクセス制御リストのメカニズムを考え出す必要があります。3種類のユーザーがいます。
- システム(システムに対して何でもできる人、管理者デーモンと内部デーモンを含む)
- 運用(ユーザーや組織を追加および削除したり、ユーザーや組織に代わって保守作業を行ったりできる担当者)
- エンドユーザー(1つ以上の組織に属し、組織ごとに、ユーザーは組織管理者や組織の読み取り専用メンバーなどの1つ以上の役割を持つことができます)(orgadminのような役割はその組織のユーザーを追加することもできます)
今私の質問は、ユーザーのエンティティをどのようにモデル化する必要があるかということです。
エンドユーザーだけを取り上げると、1つ以上の組織に属することができるため、各ユーザーにはその組織への一連の参照を含めることができます。しかし、各組織のユーザーの役割をどのようにモデル化するのでしょうか。
たとえば、ユーザーUXは組織og1、og2、og3に属しており、og1の場合はorgadminとorg-read-only-userの両方であり、og2の場合はorgadminのみであり、og3の場合はorg-read-onlyのみです。 -ユーザー
各ユーザーを1つの組織だけに所属させる可能性はありますが、それによってシステムが制限され、そのアイデアは好きではありません(ただし、要件は満たされます)。
より拡張可能なACLアーキテクチャを使用している場合は、それを提案してください。サービスとしてのソフトウェアであるため、同じシステムであれば、多くの異なる組織が参加することが予想されます。og1とog2のデータを同じDBに保持するのは良い考えではないという懸念が1つありました(og1がシステムに100個のレポートを生成することを決定した場合、og2は影響を受けないはずです)しかし、それは今のところ進んでいることであり、そうではありませんACLに直接関連しますが、データの物理的な配布とそれらのACLに基づくサービスのセットアップに関連します
これはコミュニティWikiの質問です。修正したいことはすべて修正してください。ありがとう