Pular para o conteúdo principal

Casbin

Uma biblioteca de autorização que suporta modelos de controle de acesso como ACL, RBAC, ABAC para Golang, Java, C/C++, Node.js, Javascript, PHP, Laravel, Python, .NET (C#), Delphi, Rust, Ruby, Swift (Objective-C), Lua (OpenResty), Dart (Flutter) e Elixir

Começar
[object Object]

Modelos híbridos de controle de acesso

No Casbin, um modelo de controle de acesso é abstraído em um arquivo CONF baseado no metamodelo PERM (Política, Efeito, Requisição, Correspondentes). Assim, alternar ou atualizar o mecanismo de autorização para um projeto é tão simples quanto modificar uma configuração.

[object Object]

Armazenamento de política flexível

Além de memória e arquivo, a política do Casbin pode ser armazenada em vários lugares. Atualmente, dezenas de bancos de dados são suportados, desde MySQL, Postgres, Oracle até MongoDB, Redis, Cassandra, AWS S3. Verifique a lista completa de suportados em: adaptadores.

[object Object]

Multi-idiomas & multi-plataformas

Casbin é implementado em Golang, Java, PHP e Node.js. Todas as implementações compartilham a mesma API e comportamentos. Você pode aprender Casbin uma vez e usá-lo em qualquer lugar.

Persistência de Política

In Casbin, the policy storage is implemented as an adapter(aka middleware for Casbin). To keep light-weight, we don't put adapter code in the main library (except the default file adapter). A complete list of Casbin adapters is provided as below. Any 3rd-party contribution on a new adapter is welcomed, please inform us and I will put it in this list:) For details of adapters, please refer to the documentation: adaptadores.
Policy Persistence
Policy enforcement at scale

Cumprimento de política em escala

Alguns adaptadores suportam gerenciamento de política filtrada. Isso significa que a política carregada pelo Casbin é um subconjunto da política no armazenamento com base em um filtro dado. Isso permite a aplicação eficiente de políticas em ambientes grandes e multi-tenant quando a análise da política inteira se torna um gargalo de desempenho.

Gerenciador de funções

O gerenciador de funções é usado para gerenciar a hierarquia de funções RBAC (mapeamento usuário-função) no Casbin. Um gerenciador de funções pode recuperar os dados de função das regras de política do Casbin ou de fontes externas como LDAP, Okta, Auth0, Azure AD, etc. Nós suportamos diferentes implementações de um gerenciador de funções. Para manter a leveza, não colocamos o código do gerenciador de funções na biblioteca principal (exceto o gerenciador de funções padrão). Uma lista completa de gerenciadores de funções Casbin é fornecida como: gerenciadores-de-funções.
Role manager

Quem está usando o Casbin?

Centenas de projetos estão usando o Casbin, desde empresas Fortune 500 estabelecidas até startups quentes e novas. Se você está curioso para ver o que pode ser realizado com o Casbin, confira esses aplicativos!