Com base na atividade do GitHub, na frequência de atualizações e no modelo de implantação, listei as 8 principais ferramentas RBAC de código aberto que ajudam as organizações a restringir o acesso ao sistema, concedendo permissões e privilégios aos usuários.
Esta lista abrange 8 ferramentas RBAC de código aberto em três categorias: bibliotecas de autorização de uso geral e plataformas de identidade com suporte a RBAC , e ferramentas de permissão específicas para Kubernetes.
Ferramentas RBAC de código aberto baseadas em estrelas do GitHub
Seleção e classificação de ferramentas:
- Número de avaliações: mais de 300 estrelas no GitHub.
- Lançamento de atualização: Pelo menos uma atualização foi lançada na semana passada.
- Classificação: Os fornecedores são classificados por estrelas do GitHub em ordem decrescente.
Caixa
Casdoor é uma plataforma de Gerenciamento de Identidade e Acesso (IAM) que gerencia autenticação e RBAC por meio de uma interface web, com suporte para OAuth 2.0, Workspace, Active Directory e Kerberos.
Figura 1: Ilustração da autenticação por meio da comunicação
Fonte: Cashor 1
Funções e permissões são atribuídas a objetos integrados, como aplicativos, ou a comportamentos de acesso personalizados; os administradores estruturam grupos e grupos virtuais para refletir a hierarquia de autoridade da organização.
A principal diferença prática em relação a outras ferramentas desta lista é o suporte a múltiplos protocolos em uma única implementação: o Casdoor consegue integrar ambientes legados do Active Directory com aplicações modernas do OAuth 2.0 sem a necessidade de uma camada adaptadora adicional. A configuração é feita por meio de interface gráfica, em vez de arquivos, o que limita a integração com GitOps em comparação com ferramentas como Cerbos ou Casbin. Equipes que precisam de gerenciamento programático de políticas via controle de versão encontrarão a abordagem "web-first" do Casdoor como uma limitação.
Cidadela
ZITADEL é uma plataforma de infraestrutura de identidade de código aberto focada em multilocação B2B: cada organização cliente gerencia seu próprio conjunto de usuários, funções e permissões de forma independente.
Protocolos suportados:
- OpenID Connect
- OAuth 2.x
- SAML 2
Vídeo 1: console do administrador Zitadel
Fonte: Zitadel 2
Abordagem de implementação
Os administradores integram o pacote RBAC e atribuem funções de autorização a partir do Console ZITADEL. As permissões são atribuídas por meio de APIs.
Tipos de funções:
- Cargos específicos para cada vaga (administrativo, contábil, funcionário, recursos humanos)
- Funções de gerenciamento específicas do ZITADEL (ORG_OWNER, IAM_OWNER)
Exemplo: Credenciais do gerente de RH David Wallace mostrando a busca por subsídios de gestão.
Figura 2: Busca por subsídios de gestão em Zitadel
Fonte: Zitadel 3
Quem utiliza esta solução: Organizações que gerenciam portais de clientes B2B que necessitam de multilocação com login seguro e autoatendimento.
Vantagem: Combina gerenciamento de identidade com RBAC em uma única plataforma. Reduz a proliferação de ferramentas.
Cerbos
Cerbos é uma camada de autenticação que permite aos usuários definir regras de controle de acesso para recursos de aplicativos.
Capacidades:
- Colabore com os colegas de equipe para criar e compartilhar políticas em ambientes privados.
- Distribuir atualizações de políticas de segurança de rede para toda a frota de protocolos de dados em pacotes (PDP).
- Crie pacotes de políticas personalizados para autorização no lado do cliente ou no navegador.
Figura 3: Como o Cerbos se integra ao seu aplicativo
Fonte: Cerbos 4
Permissão – Opal
OPAL (Open Policy Administration Layer) é uma camada administrativa para o Open Policy Agent (OPA) que detecta alterações de políticas e dados em tempo real e envia atualizações em tempo real para as instâncias do OPA implantadas sem a necessidade de reinicialização. Os administradores atualizam os atributos de função do usuário; esses atributos são transferidos para o banco de dados de back-end e disponibilizados para o mecanismo de decisão do OPA. A função permit.check() avalia o nível de acesso de um usuário em relação à política atual.
Vídeo: Verificações de permissão do usuário na interface do usuário com o Opal
Fonte: Permit.io 5
Requisito técnico: Requer a implementação do OPAL. O OPAL é uma camada administrativa, não uma solução independente.
Fairwinds – Gerente RBAC
O Fairwinds RBAC Manager automatiza a vinculação de funções em namespaces do Kubernetes. Em vez de criar RoleBindings individuais em cada namespace para um usuário que precisa de acesso entre namespaces, o RBAC Manager gerencia essas vinculações a partir de uma única configuração declarativa.
Exemplo básico
O usuário único, Joe, precisa de acesso de "edição" ao namespace "web". O Gerenciador RBAC cria associações de função que permitem o acesso de edição ao namespace web.
Figura 4: Vinculação de funções com o Fairwinds – RBAC Manager
Fonte: Fairwinds 6
A ferramenta opera na camada do cluster Kubernetes e não afeta as decisões de autorização em nível de aplicação. Seu valor reside na redução da deriva de configuração em ambientes onde centenas de combinações de namespace e usuário teriam que ser rastreadas manualmente.
OpenFGA
O OpenFGA é um mecanismo de autorização de código aberto baseado no Controle de Acesso Baseado em Relacionamentos (ReBAC), inspirado no sistema de autorização interno Zanzibar da Google. Em vez de atribuir permissões diretamente a funções, o OpenFGA modela o acesso por meio de relacionamentos entre usuários e objetos.
Com o OpenFGA, os administradores podem:
- Escreva um modelo de autorização
- Escreva tuplas de relacionamento
- Realizar verificações de autorização
- Adicione autenticação ao servidor OpenFGA deles.
Por exemplo, para verificar se o usuário “user:anne” do tipo usuário tem uma relação de “leitor” com o objeto “document:2021-budget”, os administradores podem escrever tuplas para testar as APIs.
Assim, a consulta na figura sempre retornará { “allowed”: true } se o usuário definir “document:2021-budget#reader” como tendo a relação “reader” com “document:2021-budget”.
Figura 5: Consultando com tuplas contextuais
Fonte: OpenFGA 7
Rede Casbin
Casbin é uma biblioteca de autorização disponível em Go, Java, Node.js, Python, .NET, Rust, PHP e Elixir. Ela suporta ACL, RBAC e ABAC por meio de uma definição de modelo baseada em arquivo de configuração: o modelo de controle de acesso é expresso em um arquivo CONF usando o metamodelo PERM (Política, Efeito, Requisição, Correspondências), e a troca de modelos requer apenas uma alteração de configuração, em vez de modificações no código do aplicativo.
Para RBAC, o Casbin armazena mapeamentos de usuário-função e suporta hierarquia de funções com profundidade configurável (máximo padrão: 10 níveis). A API RBAC fornece uma interface de nível superior para operações comuns; para regras baseadas em atributos, as condições podem ser avaliadas em relação às propriedades de recursos ou usuários diretamente na expressão de correspondência.
Figura 6: Criando uma lista de controle de acesso (ACL) baseada em funções com o Casbin
Fonte: Casbin 8
O que significa:
- Alice consegue ler dados1
- Bob pode escrever dados2
Por que sua organização deveria usar ferramentas RBAC?
Estatísticas de segurança de rede mostram que mais de 6 milhões de registros de dados foram expostos globalmente devido a violações de dados no primeiro trimestre de 2023. A implementação de lógica convencional baseada em funções é um método eficaz para controlar o acesso não autorizado de usuários a recursos vitais da empresa; no entanto, o gerenciamento manual de centenas de instruções condicionais pode ser demorado.
As equipes de segurança podem aprimorar suas estratégias de proteção integrando ferramentas centralizadas de Controle de Acesso Baseado em Funções (RBAC) de código aberto com sistemas de Gerenciamento de Identidade e Acesso (IAM). Isso garante que apenas usuários autorizados possam acessar recursos confidenciais, melhorando a governança de acesso.
Além disso, ao implementar a microsegmentação , as políticas de segurança podem ser aplicadas em zonas de rede isoladas, restringindo ainda mais o acesso e minimizando a superfície de ataque. Essa abordagem em camadas fortalece a segurança ao combinar permissões de usuário granulares com limites de rede rigorosamente controlados.
Benefícios das ferramentas RBAC de código aberto
As ferramentas RBAC de código aberto permitem que os usuários:
- Interaja com outros desenvolvedores para relatar e acompanhar bugs e solicitações de recursos com transparência.
- Acompanhe a versão de desenvolvimento mais recente e veja como o desenvolvimento está progredindo.
- Corrija erros e implemente funcionalidades se souber programar.
- Evite pagamentos iniciais, taxas de assinatura e dependência de fornecedores.
Como selecionar ferramentas RBAC de código aberto
Aqui estão algumas recomendações a serem consideradas ao selecionar uma ferramenta RBAC de código aberto:
- Verifique a popularidade da ferramenta: o número de colaboradores e membros da comunidade do GitHub que respondem às perguntas dos usuários reflete a popularidade das tecnologias de código aberto. Quanto maior a comunidade, mais suporte sua organização poderá obter.
- Verifique os recursos da ferramenta: A maioria das ferramentas RBAC de código aberto oferece personalização de funções, registro de permissões e métodos de login. No entanto, se sua organização pretende usar a ferramenta RBAC para diversas finalidades, você deve procurar um produto mais completo. Por exemplo, uma organização que busca gerenciamento de acesso automatizado pode considerar uma solução com recursos de gerenciamento de identidade e acesso (IAM).
- Comparação de soluções proprietárias : As soluções de código aberto geralmente incluem apenas recursos limitados ou complementares. Implementar uma solução mais personalizada que ofereça um nível superior de recursos (por exemplo, segmentação em nuvem) pode ser mais eficiente para sua organização. Aqui está uma lista de ferramentas proprietárias de microsegmentação com recursos de RBAC.
Seja o primeiro a comentar
Seu endereço de e-mail não será publicado. Todos os campos são obrigatórios.