問題タブ [rbac]
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.
ruby-on-rails - 最高の役割ベースのアクセス制御 (RBAC) データベース モデル
Web アプリケーションのロールベースのアクセス制御を追跡するのに最適なデータベース スキーマは何ですか?
私は Rails を使用していますが、Google によってリンクされた RBAC プラグインはメンテナンスされていないようです (SVN へのコミットは 300 件のみです。最新のものはほぼ 1 年前です)。
この概念は、ゼロから実装するのに十分単純ですが、正しく理解する価値があるほど複雑で重要です。
では、他の人はどのように RBAC モデルを設計し、実装しているのでしょうか?
asp.net - asp.netのrbac?
asp.net 用のオープン rbac フレームワークはありますか? レール用のソリューションはいくつかありますが、asp.net 用の単純な rbac システムが見つかりません。使用して拡張できるものはありますか?
.net - ユーザーがメンバーになっているすべてのロール (グループ) を取得するにはどうすればよいですか?
メソッドで明示的にチェックせずに、Windows 認証済みユーザーが属するロールのリストを取得する方法はありWindowsPrincipal.IsInRole
ますか?
ldap - LDAP での RBAC アクターの表現
LDAP ストアを使用して RBAC モデルを実装する場合 (テストベッドとして Apache Directory 1.0.2 を使用しています)、アクターの一部は明らかに特定の objectClasses にマップ可能です。
- リソース - これに対する明確なマッピングがわかりません。applictionEntity は、この目的のために接線的にのみ意図されているようです
- 権限 - 権限は、単一目的のロールとして表示できます。リソースへのRBACアクセス許可ではなく、LDAPオブジェクトと属性へのアクセスを管理するため、明らかにLDAPアクセス許可については考えていません
- Roles - groupOfNames または groupOfUniqueNames にほぼ直接マップされますよね?
- ユーザー - 人
過去に、リソースがディレクトリ内でまったく処理されず、アクセス許可とロールが Active Directory グループにマップされたモデルを見てきました。
これらの俳優を表現するためのより良い方法はありますか? スキーマの適切なマッピングと意図について説明しているドキュメントはどうでしょうか?
.net - コールスタックのどこでロールチェックを実行する必要がありますか?
私の典型的なアプリでは、ユーザーはaspxページのボタンをクリックし、C#ビジネスオブジェクトを呼び出してから、ストアドプロシージャを実行します。
役割のチェックは、スタックの一番上、スタックの一番下、またはすべてのレベルで実行する必要がありますか?悪意のあるユーザーが1つのメソッドを呼び出すことができる場合、彼は任意のメソッドを呼び出すことができるようです。したがって、効果的なセキュリティのために、すべてのメソッドをチェックする必要があります(そしてそれは書くための余分なコードがたくさんあります)。
これが私の質問を説明するための典型的なコールスタックです:
database-design - ロールベースのアクセス制御DB設計
この質問は、RBACシステム自体のデータベース設計に関するものではなく、そのWebアプリケーションでユーザーがコンテンツを送信できる場合に、このデータベースをアプリケーション固有のデータベースと組み合わせて使用する方法に関するものです。
現状では、私のRBACは、スタッフがレコードを追加および更新できる単純なバックエンド管理アプリケーションで簡単に機能するはずです。たとえば、オンラインストアには、通常、ユーザーが送信したコンテンツはありません。2つのデータベースは分離したままにすることができます。ただし、ユーザーがコンテンツを送信できるWebサイト/アプリケーションでRBACデザインを再利用する方法がわかりません。レコードを追加/更新するためのアクセス許可を必要とする2つのデータベースに2つのユーザーテーブルがあります。
RBACデータベースをWebサイトデータベースに組み込み、ユーザーテーブルを共有しますか?
2つを別々に保ちますか?
他に何かしますか?
オプション2の場合、次のようにします。
(A)WebサイトデータベースからRBACユーザーテーブルにユーザーを複製します
(B)Webサイトデータベースのユーザーテーブルとの関係を作成します
(C)Webサイトユーザー用にWebサイトデータベース内に新しいRBACシステムを作成し、管理者ユーザー用に個別のRBACを用意しますか?
データを複製しているのでAは悪いようですが、実装はかなり簡単なようです。Bは、2つの別々のユーザーテーブルとの関係を作成するのが難しいようです。Cも重複していますが、「管理者」のRBACに影響を与えることなく、このRBACを大幅にカスタマイズできます。
基本的に、RBACシステムを可能な限り再利用できるようにしたいのですが、アプリケーション固有のユーザーがコンテンツを送信できるようにすることで、頭を悩ませるのが少し難しくなります。
私のこの小さなRBACシステムは、ほとんど私が学ぶための方法なので、一般的な「フレームワークx / y/zを使用する必要があります」は使用しないでください。最近発見した用語を使用すると、私はややオタクであり、興味があるときはいつでもそれらを再発明したいと思っています!:)
私は自分のサイトにMySQLとPHPを使用しますが、ここで質問しているのはデータベース設計であるため、これは問題ではありません。
私の質問が明確でない場合は、私に知らせてください。さらに説明します。いつもありがとうございました。
windows-server-2003 - プログラムで Microsoft AzMan のスコープに役割を割り当てますか?
私は Windows Server 2003 で使用しており、セキュリティ チームからAzMan
完全に隠れる管理アプリケーションを作成しました。
ただし、 の機能の 1 つを実装するのに苦労しています。AzMan
MMC
MMC
と呼ばれる役割と、その役割だけを含むUser
と呼ばれる役割があります。すべてのデータ ( ) レベルで役割を割り当て、スコープ レベルで役割を割り当てたいと考えています。
ただし、定義を失うことなく、ロールをプログラムでスコープに割り当てる方法が見つかりません。(スコープを呼び出して)ロールを割り当てることはできますが、新しい空のロールを作成するだけのようです。で右クリックし、プロパティをクリックしてからShow Definitionをクリックすると、何もありません。Branch User
User
User
Role Assignments
Branch User
Branch User
CreateRole
MMC
AddTask
また、そのIAzRole
オブジェクトを呼び出して追加しようとするUser
と、期待どおりに機能しません。ロール内のすべてのタスクがUser
自分のBranch User
ロールに追加されますが、ロール自体は追加されません。
これを行う方法はありますか?
language-agnostic - アクセス制御リスト
今後のプロジェクトの (役割ベースの) アクセス制御リストを読んでいて、それがどのように機能するかを理解するのに苦労しています。
私が見た例では、コントローラー/モデルの特定のアクションへのアクセスの許可と拒否について常に話しています。例: グループ「訪問者」はread
投稿でき、「メンバー」は投稿できread
、edit
「管理者」は投稿できますcreate, read, update, delete
。
これらのことは、私には少しグローバルすぎるようです。私自身の状況(この例に合わせて調整)では、多数のグループがあり、それぞれがedit
特定のカテゴリ (またはその他の基準) に属する投稿のみを行うことができます。
私がそれを機能させるために考えることができる唯一の方法は、各カテゴリの投稿用に新しい ACO を作成することです。
そして、それらのそれぞれに個別にアクセスを許可します (これは、すべてにアクセスする必要がある管理者にとって重要な PITA になる可能性があります)。
ACL パターンはこのような状況にどのように対応しますか? より良い方法はありますか?
私は最終的にこれを PHP で実装し、Cake を使用します。そのため、PHP を使用した例は歓迎されますが、必須ではありません!
design-patterns - アクセス制御の設計パターン
私は PHP アプリケーションに取り組んでおり、いくつかのオブジェクトにアクセス制御を追加したいと考えています。この質問は言語固有のものではないと感じているため、この質問に PHP のタグを付けませんでした。
「サービスクラス」があるとします
多くのサービスがこれを基本クラスとして使用します。疑似例の 1 つを次に示します。
後で、アクセス制御を追加したいと思います。サンプルの「getCompanyInfoById」メソッドは「読み取り」操作であるため、これには「読み取り」権限が必要です。
この時点で、次の方法でこれを実装できます。
- アクセス制御を Service クラスに追加します。すべてのメソッド (getCompanyInfoById など) は、操作を完了して結果を返す前に、「hasPrivilege」メソッドを内部的に呼び出す必要があります。
- 内部オブジェクトでメソッドを呼び出す前に権限をチェックするある種の Proxy オブジェクトですべての Service オブジェクトをラップします。
- アクセス制御を完全に分離し、「呼び出し元」にメソッドを呼び出す前に権限を確認させます。
すべてのオプションの短所:
- これには、すべてのサービスを変更する必要があり、アクセス制御を認識する必要があります。これは関心の分離に反すると思います。
- これにより、ポリモーフィズムなどの OOP 機能が壊れます。呼び出し元は、サービスがサポートするインターフェイスを認識しなくなります。
- これは最も柔軟ですが、パーミッションのチェックが暗黙的に行われるという大きな欠点があります。開発者が「忘れる」か、複雑なコードパスにより、許可されていないサービスが呼び出される可能性があります。
これに完全にアプローチするより良い方法はありますか?