Casbin RBAC vs. RBAC96
Casbin RBAC e RBAC96
Neste documento, vamos comparar Casbin RBAC com RBAC96.
Casbin RBAC suporta quase todas as funcionalidades do RBAC96 e adiciona novas funcionalidades em cima disso.
Versão RBAC | Nível de Suporte | Descrição |
---|---|---|
RBAC0 | Totalmente Suportado | RBAC0 é a versão básica do RBAC96. Ele esclarece a relação entre Usuários, Funções e Permissões. |
RBAC1 | Totalmente Suportado | RBAC1 adiciona hierarquias de funções em cima do RBAC0. Isso significa que se alice tem role1 , role1 tem role2 , então alice também terá role2 e herdará suas permissões. |
RBAC2 | Tratamento de Exclusão Mútua Suportado (como este) | RBAC2 adiciona restrições ao RBAC0. Isso permite que o RBAC2 lide com políticas mutuamente exclusivas. No entanto, limites quantitativos não são suportados. |
RBAC3 | Tratamento de Exclusão Mútua Suportado (como este) | RBAC3 é uma combinação de RBAC1 e RBAC2. Ele suporta hierarquias de funções e restrições encontradas no RBAC1 e RBAC2. No entanto, limites quantitativos não são suportados. |
A Diferença Entre Casbin RBAC e RBAC96
No Casbin, a distinção entre Usuário e Função não é tão clara quanto no RBAC96.
No Casbin, tanto o Usuário quanto a Função são tratados como strings. Por exemplo, considere o seguinte arquivo de política:
p, admin, book, read
p, alice, book, read
g, amber, adminSe você chamar o método
GetAllSubjects()
usando uma instância do Casbin Enforcer:e.GetAllSubjects()
o valor de retorno será:
[admin alice]
Isso ocorre porque no Casbin, sujeitos incluem tanto Usuários quanto Funções.
No entanto, se você chamar o método
GetAllRoles()
:e.GetAllRoles()
o valor de retorno será:
[admin]
A partir disso, você pode ver que há uma distinção entre Usuários e Funções no Casbin, mas não é tão nítida quanto no RBAC96. Claro, você pode adicionar um prefixo às suas políticas, como
user::alice
erole::admin
, para esclarecer suas relações.Casbin RBAC fornece mais permissões do que RBAC96.
RBAC96 define apenas 7 permissões: ler, escrever, anexar, executar, crédito, débito e inquérito.
No entanto, no Casbin, tratamos permissões como strings. Isso permite que você crie permissões que melhor atendam às suas necessidades.
Casbin RBAC suporta domínios.
No Casbin, você pode realizar autorizações com base em domínios. Essa funcionalidade torna seu Modelo de Controle de Acesso mais flexível.