問題タブ [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.
php - YiiRBACAuthManagerとBizrulesの問題
例:誰かが特定のブログ投稿のみを更新できるようにしたい。
ルールは次のようにレイアウトされると思いますが、機能しません。
Yiiコードを見ると、その理由がわかります。しかし、どうすればこれを実装できますか?すべての割り当てにビズルールを追加することもできますが、それはかなり肥大化したと思います。もっと良い方法があるはずですよね?
php - Yii シンプルな rbac - checkAccess が実行されない
私はYiiが初めてです。このチュートリアル: http://www.yiiframework.com/wiki/328/simple-rbac/を使用して、管理者の役割を機能させました。コントローラーの accessRules 関数は次のようになります。
私が理解していれば、管理者または削除アクションを表示しようとすると、 WebUser クラスから checkAccess 関数を実行する必要があります。私の checkAccess 関数は次のようになります。
したがって、「動作します」と表示されるはずです。しかし、私は得る
エラー 403
このアクションを実行する権限がありません。
私は何を間違えましたか?
zend-framework - Zend Framework 2 の RBAC または ACL。どれが推奨されますか?
ZF2 プロジェクトにアクセス制御を実装しようとしています。RBAC と ACL の両方をチェックしています。どちらが他のものよりも最適ですか? なぜ?
そして、将来、Zend によって適切にサポートされるのはどれですか?
私はそれをグーグルで検索しましたが、答えが得られませんでした。
java - この組織に属していないユーザーに対して、組織管理権限をロールに付与するにはどうすればよいですか?
Liferay 6.1を使用していますが、個々の組織の権限を変更して、その組織OrgAに属していないRoleXを持つUserXがそれらの組織を管理できるようにします。
特に:
- OrgAをRoleX で表示および更新できるようにしたい
Control Panel->Users and Organizations
- UserXは新しい組織とユーザーを追加できます
- UserXはRoleXに属していますが、OrgAには属していません(したがって、Organizationスコープの役割は役に立たないと思います)。
プログラムでやりたいのですが。
私がこれまでに試したこと:
RoleXを作成し、次の権限を付与しました。
- [コントロールパネル]->[ユーザーと組織]にアクセスするには(ポートレット125)
OrgA、スコープ4(個人):
ActionKeys.VIEW、ActionKeys.UPDATE、ActionKeys.ASSIGN_USER_ROLES、ActionKeys.DELETE、ActionKeys.MANAGE_USERS
スコープ4のOrgAのグループ。
/li>
RoleXを使用しているユーザーはUsers and Organizations
、コントロールパネルのフォームにアクセスできますが、表示できるのは自分の組織のみで、OrgAは表示されません。
OrgAも表示および管理するためのアクセス許可を与えるにはどうすればよいですか?
ありがとう
rbac - 役割ベースのアクセス制御 (RBAC) でのセッションの使用
RBAC モデルに基づくアクセス制御を理解しようとしています。以下のリンクを参考にしました。
抜粋で述べたように、私はこの部分を明確に理解していません -
*"各セッションは、1 人のユーザーをおそらく多くのロールにマッピングしたものです。つまり、ユーザーは、割り当てられたロールのサブセットをアクティブ化するセッションを確立します。各セッションは 1 人のユーザーに関連付けられ、各ユーザーは関数 session_roles は、セッションによってアクティブ化された役割を提供し、関数 user_sessions は、ユーザーに関連付けられている一連のセッションを提供します. ユーザーが利用できる権限は、役割に割り当てられた権限です.すべての user.s セッションでアクティブ化されました。"*
質問- セッションを使用して役割をアクティブ化するにはどうすればよいですか? ユーザー/グループとロールの関係は、管理データとして挿入されます。では、セッションはどのようにしてユーザーのロールのサブセットをアクティブ化するのでしょうか?
PS ->ここで以前にこの質問をしましたが、回答がありませんでした。この質問はあまりにも基本的すぎて尋ねることができないかもしれませんが、私はそれを理解したいと思っています. ユースケースやリンクは間違いなく役に立ちます。
御時間ありがとうございます。
php - 複雑な権利システム: ACL、RBAC など
現在、プロジェクト管理ソフトウェアを開発中です。また、セキュリティを実装するための正しいアプローチを決定するのに苦労しています。私たちは ACL と RBAC の両方を見てきましたが、特定の理由から、少なくとも両方の組み合わせが必要であることはすでにかなり確信しています。しかし、どちらの世界にも適切な解決策がない問題がいくつかあります。説明させてください:
次のエンティティがあるとします。
- さまざまなロールを持つユーザー、つまり
- プロジェクトリーダー
- ワーカー
- 管理者
- プロジェクト
- 割り当てられたユーザー
- プロジェクトのタスク
ここで、次のルールを表現する必要があります:ロールWorkerを持つユーザーは、割り当てられたプロジェクトに関連するTaskのみを表示できます。
これにより、ユーザーはリスト全体の一部のタスクのみを表示できるようになります。
RBAC を使用して、実際に Task を読み取る権限をRolesに付与します。ただし、特定のエンティティが関与しているため、条件は適用されません。ACL を使用することもできますが、ACL エントリを要件と一致させておくことの悪夢を恐れています (ユーザーは変更でき、役割は変更でき、新しいタスクを導入でき、正しいエントリを取得する必要があり、これも複雑です)。
もちろん、特定のプロジェクト ( ) を表示するときに特定のクエリが存在する可能性がありますが、これは「現在のすべてのタスクWHERE project_id = 123
の表示」には役立ちません。この場合、基本的にすべてのタスクを表示することができますが、ACL をチェックする必要があります。すべてのエントリ。
また、「現在のユーザーが表示できる最初の 25 個のタスクを取得する」などのことを、DB からすべてのタスクをロードせずに、ACL に基づいてフィルタリングする、つまりページネーションを処理することなく確実に行うにはどうすればよいですか。
rbac - RBAC の操作と権限の違い
役割ベースのアクセス制御 (RBAC) を使用して一般的なユーザー管理システムを開発していますが、操作テーブルとアクセス許可テーブルを区別できませんでした (つまり、非常に多くの記事を読んだ後です)。
"サブジェクトは複数のロールを持つことができます。ロールは複数のサブジェクトを持つことができます。ロールは多くの権限を持つことができます。権限は多くのロールに割り当てることができます。操作は多くの権限を割り当てることができます。権限は多くの操作に割り当てることができます。 "
en.wikipedia.org/wiki/Role-based_access_control
誰かがそれらを区別するための簡単な例を挙げてもらえますか?
php - 高度なアクセス制御ライブラリ
ユーザーがソフトウェア システム内のリソースにアクセスするための高度なアクセス制御を実行することに関心があります。私はヘルスケア IT の仕事をしていますが、若い私は、ヘルスケアにおける役割ベースのアクセス制御の複雑さを過小評価することがよくありました。ただし、この質問は、複雑な ACL 要件を持つすべての人に当てはまるはずです。
かなり長い間、php gaclは、Health IT システム内の非常に複雑な ACL 制御の問題を処理する目的で、私の頼りになるライブラリでした。しかし、私は現在、JavaScript全般とノード固有の作業を行っています。一般化可能な方法で Access Control を行うためのライブラリを npm で検索しました。
ユーザーとリソース (2 層ではなく 3 層) だけでなく、アクションの定義をサポートしたいと考えています。また、ユーザー、アクション、およびリソース グループが必要であり、暗黙のうちに ACL 継承が必要です。
スターウォーズをテーマにしたマニュアルからそのライブラリまでの古典的な例は、次のようなルールです。
- 乗組員のすべてのメンバーは、チューイーを除いて、銃、エンジン、コックピット、およびラウンジに (訪問、構成、および使用) アクセスできます。
- すべてのドロイドはコックピットに (アクセスして使用する) アクセスできますが、R2D2 のみがエンジンへの構成アクセスを持っています。
- Han には、あらゆる種類のリソースへのあらゆる種類のアクセス権があります。
ここでの基本的な概念には、ユーザーのグループ (乗組員、乗客、またはドロイド) または個人 (Han と Chewie) のいずれかに適用されるルールを作成できるという概念が含まれています。 ) またはグループ化することもできるさまざまなリソース (エンジンとコックピット) へのアクセス (メンテナンス アクセス = 構成 + 修理 + 使用) のグループ (バトル ステーション = コックピット + ガン)。
これにより、比較的単純なグループベースの管理で、非常に複雑なアクセス制御ルールを構成できます。
これまでのところ、php-gacl 以外ではこのようなものは見たことがありません。私は素晴らしい JavaScript ベースの ACL プロジェクトを調べましたが、それらはすべて、包括性よりも単純さと使いやすさを宣伝しています。これは、他の典型的な php ACL ライブラリ (つまりZend ACL )にも当てはまります。
ノードの「高度な ACL」プロジェクトに取り組んでいる人はいますか? 私がどこかを探すべきであるより良いアプローチはおそらくありますか?
php-gacl には 3 つの部分があり、1 つは php ベースの管理 GUI (確かに複雑すぎる)、ルールの CRUD 用の API (これは簡単に REST インターフェイスに変換できると思います)、および非常に小さなACL チェック機能を提供するファイル。
技術的には、そのソフトウェア モデルが機能するためには、最後のタイプだけをノードに完全に移植する必要がありますか?
より深いレベルでは、この問題をうまく処理するためにどのようなアプローチが使用されているかを理解したいと思います。この問題は通常どのように解決されますか? ノード/javascript、およびおそらく特定のデータベース アプローチ (リレーショナルと非リレーショナル) の観点から、この問題を効果的に議論する人にとってはボーナス ポイントです。私は、この正しい/間違いを行うための理論的根拠がたくさんあることを理解しています (つまり、RBAC と ACL について多くの意見があります)。私が欲しいのは、ライブラリの観点からまだ「機能する」、理論的に堅実な、またはほぼ堅実なものです。私は Javascript に焦点を当てていますが、他の言語が実際にこの問題をどのように解決しているかを理解したいと思います。
yii - yii rbac:ユーザーではなくグループの自動化を確認する
rbacシステムについて質問があります。私はそれをかなりよく理解していると思いますが、特別な場合についてもっと情報が必要です。
ユーザーではなくグループで自動起動を行いたいのですが。たとえば、グループ「HR」には人を作成する権限があります。そうすれば、このグループに参加する人なら誰でもそれを持っているでしょう。
もっと情報をあげましょう。
私のデータベースの一部:
そして、これは私のグループ階層の一部である可能性があります。
だから私が探しているのは、これは必須だろう、各グループがいくつかの自動化を持っているシステムです。人々は自分のグループと親グループの自動化を取得します(たとえば、「Forsys」の人々は「Forsys」、「R&D」、「Administration」の自動化を持っています)。
私が現時点で見ている解決策は、bizruleを使用することです。しかし、データベースにphpコードを書くのが良い考えかどうかはわかりません。グループ階層を更新すると(R&Dは管理ではなくRHを継承します)、データベースのbizruleを変更する必要があります。私はそれを試しました、そしてそれはうまくいきます、しかしあなたが見ることができるようにそれはたくさんのコードを必要とします。
これは、ユーザーがグループに属しているかどうかを確認するためだけのものです(親グループと階層をチェックせずに)
もう1つの可能性は、たとえば次のような新しいテーブル「group_auth」を作成することです。
-Group_2には「managePerson」の役割があります
-Group_3には操作"deleteUser"があります...
そして、ユーザーがグループに追加またはグループから削除されるたびに、auth_assigmentテーブルの自動化を更新します。
この件について他の意見を聞きたいです。すべてのコメントをいただければ幸いです:)
読んでいただきありがとうございます。私を理解するのに苦労した場合は、私の英語をお詫びします。
マイケルS。
java - 役割ベースのアクセス制御にデフォルトの役割を実装する方法
役割ベースのアクセス制御システムを実装しています。
ユーザーには役割があります (多対多)
役割には権限があります (多対多)
役割には特権があります (多対多)顧客
に対する役割belongs
AdminとNormalの2 つのデフォルトRoleが必要です。問題は、顧客への役割です。したがって、このデフォルトの役割を顧客ごとに定義する必要があります。belong
Customer ごとに同じ 2 つの役割を定義しないようにするにはどうすればよいですか?
(私が思いついた最初のアイデアは、これらのデフォルトの Roles NULL の所有者を保持することでしたが、これにより、多くの追加の制御が追加され、認証方法がフォークされます)