Casbin
ACL, RBAC, ABAC과 같은 접근 제어 모델을 지원하는 권한 라이브러리로 Golang, Java, C/C++, Node.js, Javascript, PHP, Laravel, Python, .NET (C#), Delphi, Rust, Ruby, Swift (Objective-C), Lua (OpenResty), Dart (Flutter) 및 Elixir를 지원합니다.
하이브리드 접근 제어 모델
Casbin에서 접근 제어 모델은 PERM 메타모델(Policy, Effect, Request, Matchers)을 기반으로 CONF 파일로 추상화됩니다. 따라서 프로젝트의 인증 메커니즘을 전환하거나 업그레이드하는 것은 설정을 수정하는 것만큼 간단합니다.
유연한 정책 저장
메모리와 파일 외에도 Casbin 정책은 많은 곳에 저장될 수 있습니다. 현재 MySQL, Postgres, Oracle에서 MongoDB, Redis, Cassandra, AWS S3에 이르기까지 수십 개의 데이터베이스가 지원됩니다. 전체 지원 목록은 다음에서 확인하십시오: 어댑터.
다언어 & 다중 플랫폼 지원
Casbin은 Golang, Java, PHP 및 Node.js에서 구현되었습니다. 모든 구현은 동일한 API와 동작을 공유합니다. 한 번 Casbin을 배우면 어디에서나 사용할 수 있습니다.
정책 지속성
Casbin에서 정책 저장소는 어댑터(즉, Casbin의 미들웨어)로 구현됩니다. 가벼운 무게를 유지하기 위해, 우리는 어댑터 코드를 메인 라이브러리에 넣지 않습니다(기본 파일 어댑터 제외). Casbin 어댑터의 전체 목록은 아래에 제공됩니다. 새로운 어댑터에 대한 제 3자의 기여는 환영하며, 알려주시면 이 목록에 추가하겠습니다:) 어댑터의 자세한 내용은 문서를 참조하십시오: 어댑터.대규모 정책 시행
일부 어댑터는 필터링된 정책 관리를 지원합니다. 이는 Casbin에 의해 로드된 정책이 주어진 필터를 기반으로 저장소의 정책의 부분집합임을 의미합니다. 이는 전체 정책을 파싱하는 것이 성능 병목이 되는 대규모, 다중 테넌트 환경에서 효율적인 정책 시행을 가능하게 합니다.역할 관리자
역할 관리자는 Casbin에서 RBAC 역할 계층구조(사용자-역할 매핑)를 관리하는 데 사용됩니다. 역할 관리자는 Casbin 정책 규칙 또는 LDAP, Okta, Auth0, Azure AD 등의 외부 소스에서 역할 데이터를 검색할 수 있습니다. 우리는 역할 관리자의 다양한 구현을 지원합니다. 가벼운 무게를 유지하기 위해, 우리는 역할 관리자 코드를 메인 라이브러리에 넣지 않습니다(기본 역할 관리자 제외). Casbin 역할 관리자의 전체 목록은 다음과 같습니다: 역할 관리자.Casbin을 사용하는 곳
수백 개의 프로젝트가 Casbin을 사용하고 있으며, Fortune 500 기업에서 핫한 신규 스타트업에 이르기까지 다양합니다. Casbin으로 무엇을 할 수 있는지 궁금하다면, 다른 앱도 살펴보세요를 확인해보세요!