Pular para o conteúdo principal

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 RBACNível de SuporteDescrição
RBAC0Totalmente SuportadoRBAC0 é a versão básica do RBAC96. Ele esclarece a relação entre Usuários, Funções e Permissões.
RBAC1Totalmente SuportadoRBAC1 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.
RBAC2Tratamento 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.
RBAC3Tratamento 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

  1. 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, admin

    Se 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 e role::admin, para esclarecer suas relações.

  2. 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.

  3. 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.