2011-07-30 13 views
2

私は現在PHP + MySQLを使用していますが、実際にはどんなツールも採用することができます。複雑なアクセス/許可システムを設計するにはどうすればよいですか

私は約50000人のユーザーがグループに編成され、組織に編成された部門に編成されたシステムを持っています。

私は自分のシステムのコンテンツパッケージを持っています。各パッケージには特定の権限があります。すなわち、各パッケージには、

  1. (世界)公共、
  2. 民間コンソーシアム(すべて私のシステムに登録された)
  3. (シングルユーザ+グループ+部署+組織の任意の組み合わせによってアクセスすることができます)
  4. のいずれかであります

コンテンツをより難しくするために、各コンテンツには前提条件のコンテンツが含まれている可能性があるため、コンテンツAを取る前にコンテンツBを取ることができません(大学のコース...)。

私はそれを管理する方法が不思議です。今はすべてのものがMySQLにあり、うまく動作します。前提条件でコンテンツを作成するたびに、前提条件としてそれらのコンテンツのみを選択できる必要があります。もっと許容されたアクセスです。これは、私がシステムに持っている各作品の計算量が多いことを意味します(私は数千を持っています)。

今、Aに依存するBに依存するコンテンツCがあるとします。
そして、各ユーザーに表示するカタログは何ですか?ユーザーがシステム全体を検索したときに各コンテンツ・ピースごとに行う必要がある計算をイメージ化します。

これを行う方向性/提案/既知のシステムはどれですか?

答えて

0

私はこの質問が2年以上続いていることを認識しています。今はあなたの問題を解決している可能性があります。それでも、あなたが直面していた問題を解決するための指針があります。

認可ロジックとビジネスロジックを外部化する必要があります。つまり、ビジネスルールエンジンと認可ルールエンジンを調べる必要があります。

このスペースの標準は、BPEL(ビジネスプロセス用)とXACML(認可用)です。

XACMLを使用して、特定のコンテンツを表示/編集/取得できるユーザーを特定します。 BPEL(またはBPM言語)を使用して、別のコースを受講する前にコースを受講するためのルールを決定します。

関連する問題