2011-07-18 9 views
2

私の仕事でWebアプリケーションの役割ベースの認証を見ています。私たちはcoldfusionを使用しています。これは良いrbacライブラリを作成していないようですので、ゼロから作成する必要があります。RBACシステムの "オブジェクト"

サンプルデータモデルを見ると、オブジェクトはアクセス許可に関連付けられています。

http://www.mind-it.info/2010/01/09/nist-rbac-data-model/

それは理にかなっているオブジェクトと権限の間に多くの関係、1つのように見えます。

しかし、これらの「オブジェクト」が抽象的であるべきか具体的であるべきか疑問に思っていますか?

私たちのシステムには、限られた種類のオブジェクトがいくつかあります。たとえば、「ニュース」、「イベント」、「アルバム」としましょう。これらのタイプのすべてのオブジェクトインスタンスには、異なるロールに対して同じアクセス権とアクセシビリティが必要となるため、アクセス権とロールはこれらのタイプに起因する可能性が高くなります。

この例では、オブジェクトの各インスタンスがアクセス許可に添付されているように見えました。このような場合、私はこのタイプのシステムで多くのオーバーヘッドを見ています...

こういう "オブジェクト"が実際にはロールに関連付けられている抽象的なオブジェクトタイプであるかどうか、またはこれらの「オブジェクト」が実際のオブジェクトインスタンスそのものである場合(または、rbacモデルでどちらの実装も可能な場合)

ありがとう!

+0

あなたが<役割のcflogin =>を見てきましたか? – Henry

答えて

0

オブジェクトに権限を割り当てる必要があります。はい、それを開発中にいくつかのオーバーヘッドがありますが、はるかに良いケースです。

「ニュース記事を追加する」機能を開発している間は、「addNewsItem」のようなアクセス許可を作成してください。次に、その権限をそのロールを持つロールに結び付けます。

このシステムの美しさは、(追加項目のような)オブジェクトに関連付けられたアクセス許可をコード化すると、ユーザーや役割が変更された場合でも変更する必要がないことです。 「ニュース項目を追加」には常に「addNewsItem」権限が必要です。それは決して変わらない。

例えば、オブジェクトをロールでラップし、新しいロールを追加する場合は、そのロールを許可するようにコードを変更します。ヤック

実際に実装するのはかなり簡単です。ここで私は、実装上のいくつかの基本をやったポストです:

ColdFusion: Application Options Based on Role?

関連する問題