0

実行時に作成されるオブジェクトの役割ベースの承認にAzManを使用することは可能ですか?はいの場合、これはどのように行うことができますか?

例えば:

クラス「CustomAlert」のオブジェクトが実行時に作成される場合、クラス「CustomAlert」のオブジェクトごとに異なるルールを設定できるかどうかを確認しようとしています。特定のユーザーのIDを使用してオブジェクトが作成された場合、そのユーザーがオブジェクトの作成者/所有者であると見なすと、そのユーザーはより多くのアクセス許可を使用できます。作成者/所有者のみがオブジェクトを変更できます。

4

2 に答える 2

4

これにAzManを使用することは確かに可能です。この形式のリソースと役割ベースのセキュリティを使用して、いくつかのアプリケーションを実装しました。AzManは実際には非常に柔軟性があり、リソース階層(Windowsファイルシステムのセキュリティを考えてください)も実装しました。カスタムユーザーとグループ、階層全体での役割の完全な継承、および任意のレベルでの操作を拒否する機能があります。これを行うには、AzManスコープを理解する必要があります。

AzManスコープを使用すると、特定のリソースに対して個別の役割/操作セットを作成できます。このリソースは、選択したものであれば何でもかまいません。これは、AzManの単なる文字列識別子です。これらの役割/操作は、アプリケーションレベルで割り当てられた役割に追加されます。

以前に実装した方法は、オブジェクトのIDをスコープ名として使用することです。簡単にするために、これはGUIDにするのが理想的です(ただし、MMCアプリケーションは非常に面倒になります)が、同様に「type-id」形式、つまり「CustomerAlert-1」(MMCアプリでははるかに使いやすい)を使用できます。azmanでAccessCheckを実行するときは、スコープ名をAccessCheckに渡します(現時点では、AccessCheck定義で配列が許可されていても、スコープは1つだけです)。

これを行う方法の例を実行します(他の人が苦労している場合)...

  1. アプリケーションレベルでCustomerAlertView、CustomerAlertEdit、CustomerAlertDeleteなどの操作を作成します。
  2. アプリケーションレベルでCustomerAlertOwnerというロール定義を作成します。
  3. すべての操作をCustomerOwnerロールに追加します。
  4. アプリで、「CustomerAlert-1」というスコープを作成します。
  5. スコープに「所有者」という役割の割り当てを作成します。
  6. CustomerAlertOwnerロール定義を「Owner」ロール割り当てに追加します。
  7. この所有者の役割に、顧客/ユーザー「Dave」を追加します。
  8. これで、DeleteCustomerAlert()などでアクセスチェックを実行するときに、CustomerAlertDelete操作のIDと、削除するオブジェクトのタイプ/IDをスコープとして渡すだけです。つまり「CustomerAlert-1」です。

オブジェクトプロパティベースのアクセスチェック(つまり、特定のプロパティの読み取り/書き込みをロックアウトする)の場合、考えられる2つのアプローチがあります。1つは、各プロパティとアクセスタイプ(PropertyNameGet、PropertyNameSet、PropertyAddressAdd)のオブジェクトスコープで操作を割り当てることです。 。アプリケーションレベルで操作を作成し、タスク/ロールを使用して一般的に使用されるアクセス許可セットをグループ化することにより、これを簡素化できます。もう1つの方法は、各プロパティのスコープ(CustomerAlert-1-Name)を使用することですが、特定のオブジェクトにアクセスするときに複数のスコープを個別にロードする必要があるため、これは面倒で効率的ではありません。

AzManでの操作を明示的に拒否することはできず、アプリケーション/スコープでユーザーに役割を割り当てないことを覚えておく必要があります。これは、特定のタイプのリソース階層(グループ/ユーザー)などの実装がより困難になる可能性があることを意味します。

AzManについてさらにサポートが必要な場合は、お気軽にお問い合わせください。ほとんどのシナリオについて説明しました。

于 2009-11-12T18:44:41.720 に答える
0

Azmanは役割ベースのセキュリティをサポートしていますが、ACLではなく役割のみに基づいています。特定のユーザーがログインしている場合、そのユーザーは自分が誰であるかに基づいて特定の権限を持ちますが、これらの権限は単なる静的な値です。特定のタイプのすべてのオブジェクトに適用するように作成できますが、特定の特定の属性によって異なることはありません。そのタイプのインスタンス。

于 2009-08-24T13:17:08.663 に答える