web-dev-qa-db-ja.com

役割ベースのアクセス制御

オープンソースはありますか、PHP basedCodeIgniterに使用できる役割ベースのアクセス制御システム?

25
jerichorivera

Brandon Savageは、彼のPHPパッケージ " ApplicationACL "についてプレゼンテーションを行いました。これは、ロールベースのアクセスを実行する場合としない場合があります。 [〜#〜] phpgacl [ 〜#〜] も同様に機能する可能性がありますが、確実にはわかりません。

ただし、Zend Frameworkの Zend_ACL コンポーネントはロールベースのセットアップを行います(ただし、一度に複数のロールをチェックするためにサブクラス化する必要があります)。この問題は、Zend_ACLを引き出す必要があることですが、モノリシックダウンロード(またはSVNチェックアウト)から外部に依存することはないと思います。

Zend_ACLのいいところは、ストレージにとらわれないことです。毎回再構築することも、シリアル化するように設計することもできます(私は両方の組み合わせを使用して、キャッシュ用にシリアル化し、DBから再構築します)。

12
dcousineau

多分私は質問を誤解しているかもしれませんが、役割ベースのアクセス制御(RBAC)のすべてのポイントがavoidアクセス制御リスト(ACL)を回避するのではありませんか?

RBACはアクセス制御リスト(ACL)とは異なります(... )アクセス許可を、低レベルのデータオブジェクトではなく、組織内で意味を持つ特定の操作に割り当てます。たとえば、アクセス制御リストは、特定のシステムファイルへの書き込みアクセスを許可または拒否するために使用できますが、そのファイルをどのように変更できるかはわかりません。 RBACベースのシステムでは、操作は、金融アプリケーション(...)で「クレジットアカウント」トランザクションを作成することです。特定の操作を実行するためのアクセス許可の割り当ては、操作がきめ細かく、それ自体がアプリケーション内で意味を持つため、意味があります。(引用: Wikipedia

Zend_ACLや上記の他の実装の詳細はわかりませんが、ACLベースの場合は、ロールベースの認証に使用することはお勧めしません。

30
Jens Roland

PHP-Bouncer というオープンソースプロジェクトを作成しました。それはまだかなり若いですが、うまく機能し、設定が簡単です。既存のソリューションのどれも私のニーズを満たしていないようだったので、私はそれを開発することになりました。これが役に立てば幸いです!

2
Brendon Dugan

phpgacl http://phpgacl.sourceforge.net/ は、一般的なACLベースのアクセス制御フレームワークです。

cI固有の実装については知りませんが、phpgaclを機能させるために必要なのはメインクラスファイルだけであることはわかっています。したがって、CIとの統合が問題にならないことを確信しています。 (私はCIと熱心に協力しています)

1
paan

ここにPHPの2つのRBACライブラリがあります。

私は実際に最初の1つをPolyAuthで使用しました: https://github.com/Polycademy/PolyAuth/

これは、NISTレベル1 RBACを含むフル機能の認証ライブラリです。そして、はい、RBACはACLと同じではありません。私もCodeigniterを使用しています。PDOドライバーを使用して接続IDを渡すだけです。その方法については、このチュートリアルを参照してください。 http://codebyjeff.com/blog/2013/03/codeigniter-with-pdo

1
CMCDragonkai

RBAC!= ACL-この質問に対する正解はローランドだけです。

BTWもちろん、あらゆる種類の許可システムを実装することはフレームワークの重要な部分です-十分に生成されたRBACシステムを提供しない場合は、少なくともフレームワークを使用しても意味がありません-単純なテンプレートを使用する方が良いかもしれませんその場合、ORMレイヤーを持つシステム。

RubyまたはDjangoのようなフレームワークは、これらの最新のフレームワークが提供するもののサブセットとしてのみ「クローン」されます)-PHPの世界では一般的なアンチパターンです典型的なシンドロームユオは、これらのフレームワークへのACLまたはRBACの統合が欠如していると考えています-本質的に冗談です。現在、Yii PHP FrameworkまともなRBAC実装が付属しています。

0
Gonzo Palermo

CIライブラリであるKhaos ACLについて知りました... phpgaclとCIでの使用方法もチェックしています... Zend ACLはまだチェックしていません。しかし、おそらくそれはCIに「移植」できる

0
jericho

トレイルが寒いのを知っていますが、新しいプロジェクトがポップアップしました:

PHP-RBACは、PHP Hierarchical NIST Level 2 Standard Role Based Access Controlであり、かなり成熟しており、OWASPプロジェクトでもあります。

http://phprbac.net でお楽しみください。

0
AbiusX

CodeIgniterのDX_Authプラグインを試してください。私はDX_Authが持っているのと同じ(むしろスーパーセット)関数に取り組んでいます。私のCIアドオンセットには、メニューの表示(CSSを介して制御できます)、コントローラーが呼び出される前のロールベースアクセス制御、およびその他の機能が含まれています。早く公開したいです。そうするとプロジェクトのURLが表示されます

0
Tapiwa Kelvin

http://www.jframework.info (デッドリンク)

jFrameworkには、標準のNISTレベル2 RBACがあり、単一のSQLiteデータベースファイルで動作し、徹底的にテストされており、手袋のように動作します。

JFramework DBALに依存していますが、コード内のDBAL SQLクエリを目的のDBALに単純に置き換えることができます。もちろん、SOPの方法でjFrameworkを使用できます。

0
AbiusX