問題タブ [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.
mysql - ロールベースのアクセス制御のDBスキーマ
私は現在、ここでローカルアソシエーションのメンバー管理を開発しており、現在データベーススキーマを開発しています。それを改善し、他の役割ベースのアクセスモデル(RBAC)の例を示すために、それをあなたと共有したいと思います。特にテーブル間の関係について建設的な批判をいただければ幸いです。
高解像度へのリンク:http://i.stack.imgur.com/WG3Vz.png
スキーマは次のとおりです。
使い方:
既存のクライアント(実際にはアソシエーションのメンバー)を外部アプリケーションから管理アプリケーションにマッピングしています。(クライアントテーブル)
関連付けは、Division、Subdivisionsなどで構成されます(intern_structuresテーブル)。すべてのクライアントは、複数のディビジョン、サブディビジョン、セクションなどのメンバーになることができます。
すべてのクライアントは、社長、アクチュアリー、会計などのようなメンバーシップ(部門など)で1つまたは複数の役割を持つことができ、各役割には、役割の所有者が自分の部門、下位部門、セクションなどで他の人に適用できる特定の特権があります。 。
クレデンシャルは、アプリケーションの特定のアクションに関連付けられています。クレデンシャルの所有者は、自分のスコープ内の他のメンバーに対してこのアクションを実行できます。複数の「スタンドアロン」アプリケーションが存在する可能性がありますが、それらはすべて同じ認証/承認システムを共有します。
アプリケーションは、モジュール/サブモジュール/アクションなどで構成されています。例として、「個人情報」モジュールがあります。このモジュールには「画像」というサブモジュールが含まれており、この画像に「表示、削除、編集」アクションを適用できます。ただし、削除しようとしている写真の人物が、適切な役割を持っている部門/セクションにいない限り、写真を削除することはできません。
内部構造とアプリケーション構造はどちらもツリーであり、隣接リストとネストされたセットとして実装されます。隣接リストは整合性を保証し、ネストされたセットにより、ツリーをすばやくトラバースできます。
例外は、特定の資格情報(client_credentials)を誰かに直接与えることができることです。これは、自分の部門/セクションにいない誰かに対して特定のアクションを実行する必要がある場合に必要です。
したがって、誰かが複数の部門/セクションのメンバーになり、メンバーであるすべての部門/セクションで複数の役割を取得することができます。誰かが複数の役割を通じて持っているすべての資格情報をマージします。また、クレデンシャルは常に正であり、制限的なクレデンシャルは使用できません。
java - ロールベースのアクセス制御
Javaオープンソースのロールベースのアクセス制御システムはありますか?
sql - ユーザー テーブルのブール列としてロールをモデル化することの欠点
私は RBAC に CanCan を使用する Rails アプリに取り組んでおり、役割は 3 つしかありません。今後、さらに 1 つまたは 2 つ追加する予定です。
以前は、m2m リンク テーブルを介してユーザーに結合された、独自のエンティティとして常に役割を持っていました。非常に少数の静的な役割があるため、やり過ぎのように思えます。したがって、ロールごとにユーザーテーブルにブール値の列を追加するだけでよいと考えています。(CanCan の例のように) ビットマスクを使用することもできますが、1 つの列に複数の値を格納することにあまり熱心ではありません。
私の質問は、この状況で何をするのが最善かということです: ビットマスク、複数のブール列、または適切に正規化された m2m 関係?
php - RBAC の BizRules (ビジネス ルール) は本当に安全ですか?
RBAC (Role Based Access Control) における BizRules のアイデアには、気分が悪くなりました。基本的には、認証中にデータに対して実行するスクリプトを定義する方法です。
たとえば、Yii フレームワークはそれをサポートしています: http://www.yiiframework.com/doc/api/1.1/CAuthManager#createRole-detail
public CAuthItem createRole(string $name, string $description='', string $bizRule=NULL, mixed $data=NULL)
ビジネス ルールを実行するためのソース コードは次のとおりです。
したがって、次のようなことができます。
基本的に、$params がそのコンテキストで指定された配列に設定されている bizRule を評価します。
セキュリティの観点から、これらのビジネス ルールは好きではありません。それを行うより良い方法はありますか?
asp.net - ASP.NET、Open LDAP ロール ベースのセキュリティ
Open LDAP からの認証を使用して、asp.net で開発されたアプリケーションがいくつかあります。アプリケーションは正常に動作しており、認証に問題はありません。
主な問題は、ユーザーの役割と責任を管理することであり、要件は頻繁に変更されます。ユーザーロールを管理するためのオープンソースフレームワーク、またはユーザーロールを管理する他の方法、つまりオープンLDAPなどを提案できますか...
Visual Guard のような商用ソリューションはほとんど研究していませんが、オープン ソースを探しています。
.net - 自分の役割ベースのアクセス制御 (RBAC) についてアドバイスが欲しい
ユーザーが画像や動画をアップロードできる非常にシンプルなプロフィール ページがあります。私は独自の役割システムを実装しましたが、.NET は使用していません (自分で学び、構築したかったのです)。最大で 10'000 人のユーザーと、約 50 ~ 100 人のユーザーが同時に使用します。
RBAC を処理する DB に 3 つのテーブルがあります。
役割:管理者、ユーザー、マネージャー、ゲスト
権限: SendEmail、AdvancedSearch、RemoveUser ... など。
Authorized : この表では、役割を許可にマップします。アクションに許可が必要になるたびにチェックを実行します。パーミッション<->ロールがテーブルにある場合、true を返し、アクションは承認されます。
そこで、このシナリオに関するいくつかの質問があります。
- これは承認を確認するための軽量な方法ですか? ページの読み込みとユーザーのアクションごとに DB にクエリを実行します。
- より高速な結果を得るために、これを XML ファイルに保存する必要がありますか?
- この種の RBAC に適した構造はありますか?
前もって感謝します!
.net - ユーザー/ロール管理システムのセットアップ - マルチテナンシーを使用
マルチテナンシーを考慮したユーザー/ロール管理システムを作成するためのスキーマ、データモデル、または提案を持っている人はいますか? たとえば、組織 A のユーザーに、組織 B の特定のプロジェクト、特定のアプリケーションに対する役割を割り当てることができます。何かアイデアはありますか? 良い例を探しているだけで、RBACについて読んでいます。
ありがとう
security - セキュリティ アーキテクチャ - UI と特権 (権利) を駆動するための設定 - ユーザー アカウントごとの役割ベース
大企業は、一元化され、ユーザーが実行できること (特定の Web サービスの呼び出し、注文の送信など) や UI (ボタン、メニュー オプション、個別の無効化など) を推進するために使用されるセキュリティ要件をどのように実装していますか?フォーム フィールド)?
RBAC アーキテクチャを検討しています: ユーザー -> 役割、役割 -> 特権。
多くの個々の field-account-user-role-amountThreshhold に基づく権限を持つ複雑なアプリケーションには、非常に多くの「役割」があり、役割の数が増えるにつれて、これの管理が複雑になります。
これらの考えられるすべてのオプションを管理するのは大変なことのように思えます。私の以前の経験では、そのようなロジックをアプリケーションにハードコーディングしていました。
元:If (User.Roles("IsAccounting"))
{
btnEditOrder.enabled = false;
}
私は、あらゆる/すべてのアプリケーション (すべて.NET、一部の GUI および一部のプロセス指向) の共通の認証/承認ポイントとして使用されるセキュリティ サービス/アーキテクチャの設計/実装を任されています。
これは、クライアント アカウントに関するビジネス組織と、金額に基づく権限階層のため、すぐに使用できるものではありません。
例: John はユーザーであり、アカウント "Microsoft" および "Google" の要求を表示および送信できます。Mike は "Microsoft" と "Google" の要求を表示できますが、"Google" の要求しか送信できません。
アカウント/ユーザーの数は多く、可変です。
RBAC に従うと、必要なすべての権利 (特権) に対応するために何百もの「役割」が存在することになります。管理者が直属の部下を適切な役割に割り当てることができるように、管理しやすい GUI ツールを提供することが最終目標であるため、これは役に立ちません。
私は、次の API を使用してこのセキュリティ ピースを実装することを考えていました (疑似コードのラフ ドラフト)。
アプリケーションでの使用法は次のようになります。
if (securityContext.RequestManager.CanSubmitRequest("Google")) {...}
このようにすると、パーミッションをチェックするための「Can(params)」メソッドが何千も存在することになり、このパターンの管理や使用が容易になりません。
リンク/アイデア/ポインタは大歓迎です。
これは .NET ショップですが、.NET (Membership / AzMan) からは、必要な粒度と委任の要件を提供してくれるものは何もありません。ActiveDirectory と Oracle LDAP の統合は便利ですが、必須ではありません。
古い (現在の) システムは LDAP を使用してユーザーを認証しますが、すべての承認は社内で行われ、従来の「ユーザー、ロール、権利」テーブルに保存されます。
php - 2 つのデータベース間でユーザーを共有する
このアプリケーションを PHP で開発しています。アプリケーションは、従業員機能も含む管理領域で構成されます。アプリケーションの他の部分は、顧客向け Web サイトです。
管理エリアには独自のデータベースがあります。顧客向け Web サイトには、独自のデータベースもあります。
管理データベースには、ユーザーのテーブルがあり、RBAC を実装して、ユーザーが役割や権限などを持つことができるようにする予定です。
顧客向け Web サイトでは、顧客が登録することもできます。これは、顧客 Web サイト データベースのユーザー テーブルに保存されます。
私が必要としているのは、従業員が顧客の Web サイトにログオンできるようにすることです。また、顧客 Web サイトのどの部分を変更できるか、および顧客 Web サイト データベースのどの行を変更できるかを制御する権限も必要です。
これを実装する最良の方法は何ですか?
乾杯 :)
php - 複数のロールを持つユーザーの Zend_Acl 権限の競合を解決するには?
Zend_Acl で RBAC を作成しようとしています。私が持っている質問は、ユーザーが複数の役割を持つことができるようにしたいということですが、さまざまな役割間の権限の競合を解決する方法がわかりませんか? 許可と拒否の両方がある場合、許可は常に拒否をオーバーライドする必要がありますか? いつものように、私の質問をチェックするために時間を割いていただきありがとうございます。乾杯!