Pergunta

Há algum, PHP based, sistema de controle de acesso de código aberto baseado em função que pode ser usado para CodeIgniter?

Foi útil?

Solução

Brandon Savage fez uma apresentação sobre seu pacote de PHP " ApplicationACL " que podem ou não podem realizar baseada em função de acesso. PHPGACL pode funcionar tão bem, mas não posso dizer com certeza.

O que posso dizer-lhe, no entanto, é a Zend_Acl componente do Zend Framework fará configurações baseadas em funções (no entanto, você terá a subclasse de verificar várias funções ao mesmo tempo). Concedida a dor desta é que você vai ter que retirar Zend_Acl, eu não acredito que ele tem quaisquer dependências externas, desde o download monolítico (ou SVN checkout).

A coisa agradável sobre Zend_Acl é embora sua agnóstico armazenamento. Você pode reconstruí-lo cada vez que ou ele é projetado para ser serializado (eu uso uma combinação de ambos, serialize para o cache e reconstruir a partir do DB).

Outras dicas

Talvez eu esteja mal-entendido a pergunta, mas não é todo o ponto de controle de acesso baseado em função (RBAC) para evitar Access Control Lists (ACLs)?

difere do RBAC de listas de controle de acesso (ACLs) (...) na medida em que atribui permissões para operações específicas com significado na organização, em vez de a objetos baixos de dados nível. Por exemplo, uma lista de controle de acesso pode ser usado para conceder ou negar acesso de gravação para um arquivo de sistema particular, mas não diria de que forma esse arquivo pode ser alterado. Em um sistema baseado em RBAC uma operação poderia ser a de criar uma transação 'conta de crédito' em uma aplicação financeira (...). A atribuição de permissão para realizar uma determinada operação é significativo, porque as operações são de granulação fina e eles próprios têm sentido dentro do aplicativo. (Citação: Wikipedia )

Eu não sei os detalhes sobre Zend_Acl ou as outras implementações mencionados, mas se eles são baseados em ACL, eu não recomendo usá-los para autorização baseada em funções.

Eu criei um projeto Open Source chamado PHP-Bouncer que podem ser de interesse para você . É ainda bastante jovem, mas funciona bem e é fácil de configurar. Acabei desenvolvê-lo, porque nenhuma das soluções existentes parecia satisfazer as minhas necessidades. Espero que isso ajude!

http://phpgacl.sourceforge.net/ é uma estrutura genérica de controle de acesso acl base

enquanto eu não sei sobre qualquer implementação CI específico, eu sei que você só precisa do arquivo de classe principal para tornar o trabalho phpgacl. Então, eu acredito que a integração com CI não haverá qualquer problema. (Eu trabalho passingly com CI)

Aqui estão duas bibliotecas RBAC para PHP eu encontrei:

Na verdade, eu usei a primeira em PolyAuth: https://github.com/Polycademy/PolyAuth/

É uma biblioteca auth completo que inclui nível NIST 1 RBAC. E sim, RBAC não é o mesmo que um ACL. Eu uso CodeIgniter bem, tudo que você tem a fazer é usar o driver DOP e passar o ID de conexão. Veja este tutorial para saber como fazer isso: http://codebyjeff.com/blog/ 2013/03 / codeigniter-com-PDO

Constatou-se sobre Khaos ACL que é uma biblioteca CI ... Eu também estou verificando phpgacl e como usá-lo para CI ... have'nt verificado Zend ACL ainda. Mas talvez ele possa ser "portados" a CI

Tente DX_Auth plugins para CodeIgniter. Eu estou trabalhando em um similares (em vez disso, superset) das funções que DX_Auth ter. Meu conjunto de CI do addon incluem a apresentação dos menus (que pode ser controlado através de CSS), o papel-bases acesso controll antes controlador é invocado e outras características. Espero para publicá-lo em breve. Dará URL projeto quando eu fazê-lo

RBAC = ACL - Roland tem a resposta única correta para esta pergunta.

BTW é claro que é uma parte essencial de uma estrutura para implementar qualquer tipo de sistema de permissão - pelo menos não há nenhum ponto em usar um quadro, se não dar-lhe um sistema RBAC bem engeneered - talvez seja melhor usar um sistema modelo simples com qualquer camada ORM então.

É um antipattern comum no mundo do php, que frameworks como Ruby ou Django são "clonado" apenas como um subconjunto do que estas estruturas modernas entregar - como uma síndrome típica yuo ver uma falta de bom ACL ou RBAC integração destes estruturas - o que essencialmente é uma piada. Não há atualmente apenas o Yii PHP Framework que vem com uma implementação RBAC decente.

Eu sei que a trilha é frio, mas um novo projeto estalou acima:

PHP-RBAC é um Role PHP hierárquica NIST Nível 2 Standard Based Access Control e é bem maduro. É também um projeto OWASP.

Eu espero que você goste em http://phprbac.net

http://www.jframework.info (deadlink)

jFramework tem uma NIST padrão nível 2 RBAC com melhorias que se diz ser o mais rápido disponível (inclui benchmarks) pode operar em um único arquivo de banco de dados SQLite e é testado exaustivamente, funciona como uma luva.

Tem uma dependência em jFramework DBAL mas você pode simples substituir DBAL consultas SQL no código com o seu DBAL desejado e, claro, você pode usar jFramework de forma SOP.

Ion Auth Biblioteca usa usuários e grupos - https://github.com/benedmunds/CodeIgniter- Ion-Auth mas há nenhum sistema RBAC trabalhando para usá-los e gerenciar. Mas você pode branco suas funções.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top