0

私は小さなサイトを開発しています。ユーザーがいくつかのエクスポート、アップロードなどのアクションで CRUD 機能を実行できる製品ページがあります。テーブルでページ レベルのアクションを構成しています。アクションは、ProductView、ProductDetailsView、ProductInsert、ProductUpdate、ProductDelete、ProductExport、ProductUploadViaFile などのようなものです。

ページのアクション レベルに基づいて役割を開発しています。同様に、Role1 には Product.php のメニューへのアクセス許可があり、そのページでの ProductView と ProductInsert のアクションのアクセス許可があります。user1 にロール Role1 があるとします。

user1 が Product.php ページに移動し、そのアクション許可を確認しているとき。彼が ProductView を持っている場合、user1 に製品テーブルを表示しています。コードが javascript/php レベルでかなりハードコーディングされていることがわかりました。お気に入り

foreach($useractions in $useraction){
   if($useraction == 'ProductView'){
      //show the product page....
   }
   if($useraction == 'ProductInsert')
   {
     //show create button
   }
}

アクション レベルのアクセス許可がある場合、さらに多くのコードを作成する必要があるようです。別のアクションを挿入する場合は、UI レベルのコーディングを再度変更する必要があります。これを行うためのより良い方法があることを願っています。どんな提案でも大いに役立ちます。

4

1 に答える 1

0

次のように、承認ロジックをアプリケーションから外部化する必要があります。

  1. 認可コードを何度も書き直す必要はありません
  2. 独立して承認を維持できます

その領域の主な標準は、XACML (eXtensible Access Control Markup Language) です。詳細については、OASIS XACML Web ページウィキペディアを参照してください。

XACML は、強制ポイント (PEP) またはインターセプターの概念を提供します。その PEP は、承認エンジンまたはポリシー決定ポイント (PDP) に到達します。PDP はそのポリシーを検討し、最終的に決定 (許可または拒否) に達します。

例えば:

  1. PEP の質問: ユーザー Alice は製品ページを表示できますか?
  2. PDP はそのポリシーを見て、マネージャーが製品ページを表示できることを確認します。Alice のロールを取得し、Alice がマネージャーであることを確認します。
  3. PDP は許可を許可すると結論付け、それを PEP に返します。

これが役立つことを願っています。

于 2013-09-19T19:05:47.763 に答える