問題タブ [abac]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
3495 参照

design-patterns - アクセス制御の設計パターン

私は PHP アプリケーションに取り組んでおり、いくつかのオブジェクトにアクセス制御を追加したいと考えています。この質問は言語固有のものではないと感じているため、この質問に PHP のタグを付けませんでした。

「サービスクラス」があるとします

多くのサービスがこれを基本クラスとして使用します。疑似例の 1 つを次に示します。

後で、アクセス制御を追加したいと思います。サンプルの「getCompanyInfoById」メソッドは「読み取り」操作であるため、これには「読み取り」権限が必要です。

この時点で、次の方法でこれを実装できます。

  1. アクセス制御を Service クラスに追加します。すべてのメソッド (getCompanyInfoById など) は、操作を完了して結果を返す前に、「hasPrivilege」メソッドを内部的に呼び出す必要があります。
  2. 内部オブジェクトでメソッドを呼び出す前に権限をチェックするある種の Proxy オブジェクトですべての Service オブジェクトをラップします。
  3. アクセス制御を完全に分離し、「呼び出し元」にメソッドを呼び出す前に権限を確認させます。

すべてのオプションの短所:

  1. これには、すべてのサービスを変更する必要があり、アクセス制御を認識する必要があります。これは関心の分離に反すると思います。
  2. これにより、ポリモーフィズムなどの OOP 機能が壊れます。呼び出し元は、サービスがサポートするインターフェイスを認識しなくなります。
  3. これは最も柔軟ですが、パーミッションのチェックが暗黙的に行われるという大きな欠点があります。開発者が「忘れる」か、複雑なコードパスにより、許可されていないサービスが呼び出される可能性があります。

これに完全にアプローチするより良い方法はありますか?

0 投票する
3 に答える
2446 参照

authorization - Web アプリケーションのきめ細かい承認

会社の内部ユーザーと外部顧客の両方にサービスを提供する C# .net アプリケーションがあります。誰がどのリソースにアクセスするかなど、きめ細かい承認を行う必要があります。したがって、ロールベースの承認ではなく、リソースベースまたは属性ベースのようなものが必要です。

私の頭に浮かぶのは、次のいずれかです。

  1. .net アプリケーション用に独自の承認メカニズムと SQL テーブルを実装する
  2. XACML を実装したソフトウェアなどの標準メカニズムを使用/実装する (たとえば、Axiomatics)

最初の方法の問題点は、集中化も標準化もされていないため、他のシステムが認証に使用できないことです。

2 番目のアプローチの問題点は、(リソースごとに余分な呼び出しが必要なため) 遅くなる可能性があることです。また、将来の統合を容易にするために、市場のアプリケーションで XACML のような標準認証がどの程度サポートされているかもわかりません。

では、一般的に、内部ユーザーと外部顧客の両方にサービスを提供することになっている Web アプリケーションのきめの細かい承認の良い方法は何ですか?

0 投票する
2 に答える
739 参照

rbac - XACML プロファイルとは何ですか?

XACML (eXtensible Access Control Markup Language) は初めてで、少し混乱しています。プロフィールの意味がわかりません。たとえば、RBAC または SAML プロファイルです。

それらの違いは何ですか?構造と要素は常に同じではありませんか?

助けてくれてありがとう

0 投票する
2 に答える
2722 参照

design-patterns - ACLは常に必要ですか?

非常に複雑なアクセス制御ルールを持つWebアプリケーションの場合、常にACLを使用しますか?

ユーザーの特権を決定する際には、次のような多くの考慮事項があります。

  • 彼らはログインしていますか?
  • 彼らは管理者ですか、それとも通常のユーザーですか?
  • 彼らはグラフのノードを閲覧していますか?
  • 彼らはどのタイプのノードを閲覧していますか?
  • ノードとの関係(つまり、ノードへのパス)は何ですか?
  • ユーザーのデフォルト設定は何ですか?
  • ノードのデフォルト設定は何ですか?
  • ユーザーをノードに接続するグラフエッジの設定は何ですか?

ACLの開発は困難であることが証明されていました。しばらくして、すべてのアクションの上部にある基本的な属性に対して「if/then」チェックを実行することにしました。if(isAdmin) {...}

これは問題なく機能しているようで、永続的な解決策としてそのままにしておくべきかどうか疑問に思っています。したがって、質問:アクセス制御の複雑さがACLを超えるポイントが来るのでしょうか。それとも、もう少し頑張る必要があるというだけですか?

0 投票する
3 に答える
622 参照

authorization - ポリシー ストアに格納されているポリシーに対して XACML 3.0 要求を照合する方法

こんにちは、PDP を使用してポリシー ストアに保存されているポリシーに対して、PEP からの XACML 3.0 要求を一致させる方法を知りたいだけです。ポリシー ストアに保存されている複数のポリシーに対して特定のリクエストを評価する方法。

0 投票する
1 に答える
515 参照

access-control - 2 つのパラメーターを持つ RBAC システム

2 つのパラメーターを持つ RBAC システムの例またはベスト プラクティスを探しています。単にユーザーをロールに関連付け、そのロールを権限のグループに関連付けるだけではなく、ユーザーは「特定のプロジェクトの」ロールに関連付けることができ、ユーザーはそのプロジェクトのみ (またはユーザーがそのロールを保持している他のプロジェクト) に対してそのロールの権限を持つことができます。ユーザーは、あるプロジェクトで特定の役割を持ち、別のプロジェクトで別の役割を持つことができます。ロールに付与される権限は、すべてのプロジェクトで一貫しています。また、プロジェクトに対するユーザーの権限は、そのユーザーがプロジェクトで持っている役割に基づいています。

(違いがある場合は、GET ステートメントを介してプロジェクト ID を設定する URL クエリ パラメーターを介してページ コンテンツが開発されるページ アクセスを制限しようとしています。)

ABAC は有望に見えますが、頭を悩ませています。私の理解では、ユーザーの属性によって、ユーザーが役割 (および/または権限) を持っているかどうかが決まります。私の場合、プロジェクトを「ユーザー」と見なし、ユーザーをプロジェクトの属性と見なすようです (ユーザーがそのプロジェクトの役割を保持している場合は true、そうでない場合は false)。

0 投票する
2 に答える
570 参照

wso2 - 結果を NotApplicable とするリソースに基づく XACML ポリシー

私は単純なポリシーを作成しており、フォーマットは次のようになっています

emp がリソース blue.jpg を読み取ることができるように、リソース blue.jpg へのリクエストを作成しているとき、結果は適用されません。