it-swarm-eu.dev

Role Based Access Control

Existuje nějaký open source, PHP based, systém řízení přístupu založený na rolích, který lze použít pro CodeIgniter?

25
jerichorivera

Brandon Savage přednesl prezentaci na svém balíku PHP ApplicationACL , který může nebo nemusí splňovat přístup založený na rolích. PHPGACL může fungovat také, ale nemůžu vám to určitě říct.

Co vám ale mohu říci, je, že složka Zend_ACL Zend Framework bude provádět nastavení založená na rolích (nicméně budete muset podtřídu zkontrolovat více rolí najednou). Udělil, že bolest tohoto je budete muset vytáhnout Zend_ACL, nemyslím si, že má nějaké vnější závislosti, z monolitického stahování (nebo SVN checkout).

Pěkná věc o Zend_ACL je však jeho úložiště agnostik. Můžete ho buď znovu sestavit pokaždé, když je navržen tak, aby byl serializován (používám kombinaci obojího, serializovat pro mezipaměť a znovu sestavit z DB).

12
dcousineau

Možná jsem nedorozuměl otázku, ale není celý bod Role-Based Access Control (RBAC) vyhnout seznamy řízení přístupu (ACL)?

RBAC se liší od seznamů řízení přístupu (ACL)(...) tím, že přiřazuje oprávnění konkrétním operacím s významem v organizaci, a nikoli nízkoúrovňovým datovým objektům. Například seznam řízení přístupu by mohl být použit pro udělení nebo odepření přístupu k zápisu do konkrétního systémového souboru, ale neřeklo by to, jakým způsobem lze tento soubor změnit. V systému založeném na systému RBAC může být operací vytvoření transakce „úvěrového účtu“ ve finanční aplikaci (...). Přiřazení oprávnění k provedení určité operace je smysluplné, protože operace jsou jemně zrnité a mají význam v rámci aplikace. (Citace: Wikipedia )

Neznám specifika na Zend_ACL nebo jiných zmíněných implementacích, ale pokud jsou založeny na ACL, nedoporučoval bych je pro autorizaci na základě rolí.

30
Jens Roland

Vytvořil jsem projekt Open Source nazvaný PHP-Bouncer který by vás mohl zajímat. Je to stále poměrně mladý, ale funguje dobře a snadno se konfiguruje. Vyvinula jsem ho, protože žádné z existujících řešení nevyhovovalo mým potřebám. Doufám, že to pomůže!

2
Brendon Dugan

phpgacl http://phpgacl.sourceforge.net/ je obecný rámec řízení přístupu založený na acl

zatímco já nevím o žádné konkrétní implementaci CI, vím, že potřebujete jen hlavní soubor třídy, aby se phpgacl práce. Takže věřím, že integrace s CI nebude žádný problém. (Pracuju s CI)

1
paan

Zde jsou dvě knihovny RBAC pro PHP, které jsem našel:

Vlastně jsem použil první v PolyAuth: https://github.com/Polycademy/PolyAuth/

Jedná se o plnohodnotnou autentizační knihovnu, která obsahuje NB úroveň 1 RBAC. A ano, RBAC není totéž jako ACL. Používám také Codeigniter, vše, co musíte udělat, je použít ovladač PDO a předat ID připojení. Viz tento návod, jak to provést: http://codebyjeff.com/blog/2013/03/codeigniter-with-pdo

1
CMCDragonkai

RBAC! = ACL - Roland má jedinou správnou odpověď na tuto otázku.

BTW je samozřejmě nezbytnou součástí rámce pro implementaci jakéhokoliv systému povolení - alespoň nemá smysl používat rámec, pokud vám nedává dobře vytvořený systém RBAC - mohlo by to být lepší pomocí jednoduché šablony systém s jakoukoliv vrstvou ORM.

Je to běžná antipattern ve světě php, že rámce jako Ruby nebo Django jsou „klonovány“ pouze jako podmnožina toho, co tyto moderní rámce přinášejí - jako typický syndrom yuo vidíte nedostatek dobré integrace ACL nebo RBAC do těchto rámců - co V podstatě je to vtip. V současné době existuje pouze rámec Yii PHP, který je dodáván se slušnou implementací RBAC.

0
Gonzo Palermo

Zjistili jsme o Khaos ACL, který je knihovnou CI ... Já jsem také kontrolovat phpgacl a jak jej používat pro CI ... Už jste ještě nezkontrolovali Zend ACL. Ale možná to může být "přeneseno" na CI

0
jericho

Vím, že stezka je studená, ale objevil se nový projekt:

PHP-RBAC je PHP Hierarchické NIST Level 2 Standard Role Based Access Control a je docela zralé. Je to také projekt OWASP.

Doufám, že se vám bude líbit na http://phprbac.net

0
AbiusX

Vyzkoušejte plugin DX_Auth pro CodeIgniter. Pracuji na podobné (spíše superset) funkci, kterou má DX_Auth. Moje sada doplňků CI obsahuje zobrazení menu (které lze ovládat pomocí CSS), řízení přístupu na základě rolí před vyvoláním řadiče a další funkce. Doufám, že to brzy zveřejním. Udělá URL projektu, když tak učiním

0
Tapiwa Kelvin

http://www.jframework.info (mrtvý odkaz)

jFramework má standardní NB úroveň 2 RBAC s vylepšeními, o kterých se říká, že je nejrychlejší (včetně benchmarků), který může fungovat na jediném databázovém souboru SQLite a je důkladně testován, funguje jako rukavice.

Má závislost na jFramework DBAL, ale můžete jednoduše nahradit DBAL SQL dotazy v kódu s požadovanou DBAL a samozřejmě můžete použít jFramework v SOP způsobem.

0
AbiusX