マルチテナンシーを考慮したユーザー/ロール管理システムを作成するためのスキーマ、データモデル、または提案を持っている人はいますか? たとえば、組織 A のユーザーに、組織 B の特定のプロジェクト、特定のアプリケーションに対する役割を割り当てることができます。何かアイデアはありますか? 良い例を探しているだけで、RBACについて読んでいます。
ありがとう
マルチテナンシーを考慮したユーザー/ロール管理システムを作成するためのスキーマ、データモデル、または提案を持っている人はいますか? たとえば、組織 A のユーザーに、組織 B の特定のプロジェクト、特定のアプリケーションに対する役割を割り当てることができます。何かアイデアはありますか? 良い例を探しているだけで、RBACについて読んでいます。
ありがとう
RBACに関する簡単な情報: 役割ベースのアクセス制御システムは、組織のユーザーの役割に基づいて、「一部のソースまたはアプリケーション、またはアプリケーションの一部の機能」へのアクセスを制限する方法です。
ここで、制限は複数の権限によって行うことができます。それらはアクセスを制限するために管理者ユーザーによって作成され、これらの権限は集合的にユーザーに割り当てられるロールを表します。
RBAC をもう少し深く掘り下げると、基本的に 3 つの機能が含まれます。
1) 認証 - ユーザーの身元を確認します。通常、これはユーザー アカウントとパスワードまたは資格情報を介して行われます。
2) 承認 - アプリケーションでユーザーができることとできないことを定義します。元。「注文の変更」は許可されていますが、「新しい注文の作成」は許可されていません。
3) アプリケーションに対するユーザー アクションの監査。- アプリケーションに対するユーザーのアクション、および誰がどのユーザーにどのアクセス権を付与したかを追跡します。これは、RBAC システムの非常に基本的な上面図です。
マルチテナンシーアプリケーションの場合、ロールと権限を使用して「グループとユーザーを管理する」ことをお勧めします。
例を挙げてみましょう。
アプリケーションには複数のクライアント (テナント) があります。
Client A – has – 100 users [Tenant A]
Client B – has – 50 users [Tenant B]
Client C – has – 100 users [Tenant C]
したがって、シナリオは次のようなものになります。各クライアントとこのクライアントのユーザーは、アプリケーションの特定の機能へのアクセスのみを許可され、これらのクライアントの管理者はユーザーのみを管理できる必要があります。
したがって、これを処理するには、次のことができます。
グループ「クライアント A」とその子孫グループには、「クライアント A」のユーザーが含まれ、他のクライアントまたは組織のユーザーも同様に含まれます。
したがって、ユーザーは適切なグループに割り当てられ、ロールは特定のグループに割り当てられます。
この記事を確認してください。この記事では、私が働いている VisualGuard が提供するすぐに使用できるフレームワークを介して、ユーザーおよびロール管理用のマルチテナント アプリケーションを処理する方法を示しています。
これはうまくいきますか?
Rhino のセキュリティを見たことがありますか? それはあなたが望んでいることとまったく同じではないかもしれませんが、Ayende はセキュリティ モデルとその開発プロセスを順を追って説明し、良い出発点を提供してくれます。
あなたは .NET を使用していますが、PHP の世界にいる私たちにとって、Zend Framework は軽量のアクセス制御フレームワークを提供します。これにより、独自の ACL 実装を構築できるようになり、概念を理解し、http:/で .NET で独自の ACL を構築できるようになります。 /framework.zend.com/manual/en/zend.acl.introduction.html .
追加の支援が必要な場合は、現在使用している実装を含む MYSQL ワークベンチ ファイルを提供できます。