Repolode
apache

apache/casbin

모델 및 정책 파일로 설정하는 Go 접근 제어 라이브러리로, ACL, RBAC, ABAC 권한 정책을 적용합니다.

스타
20,482
포크
1,767
열린 이슈
39
마지막 커밋
3일 전

어떤 프로젝트인가요?

Apache Casbin은 Go 프로젝트를 위한 권한 부여 라이브러리입니다. 설정 파일에 정의된 접근 제어 모델과 정책 규칙을 바탕으로 주체가 객체에 특정 작업을 수행할 수 있는지 판단합니다. 모델이 설정 파일에 있으므로 권한 부여 방식을 바꿀 때 애플리케이션 코드를 다시 작성하는 대신 보통 설정을 수정하면 됩니다.

이 라이브러리는 ACL, RBAC(역할 계층, 리소스 역할, 도메인별 또는 테넌트별 역할 포함), 리소스 속성을 사용하는 ABAC, RESTful 경로 및 메서드 매칭, 거부 우선 규칙, 규칙 우선순위를 지원합니다. 어댑터를 통해 파일이나 데이터베이스에서 정책을 불러올 수 있으며, 런타임 관리 API와 RBAC 전용 API를 사용하면 애플리케이션을 재시작하지 않고도 권한을 변경할 수 있습니다. Casbin 자체는 권한 적용과 정책 저장을 담당하며, 사용자, 비밀번호 또는 인증은 관리하지 않습니다.

이 프로젝트는 Apache Software Foundation 산하입니다. Java, Node.js, PHP, Python, .NET, C++, Rust용 동료 구현체도 있으며, 모델과 정책을 작성할 수 있는 온라인 편집기도 제공합니다.

핵심 기능

  • 01ACL, RBAC, ABAC, RESTful, 거부 우선 및 우선순위 기반 접근 제어 모델을 지원합니다.
  • 02PERM 메타모델을 기반으로 설정 파일에서 접근 제어 모델을 정의합니다.
  • 03데이터베이스와 같은 플러그형 어댑터를 통해 정책을 불러오고 저장합니다.
  • 04런타임에 권한을 변경할 수 있는 관리 API와 RBAC API를 제공합니다.
  • 05리소스 경로 패턴을 위한 keyMatch 등의 내장 매칭 연산자를 포함합니다.
  • 06동시 사용을 위한 동기화된 enforcer 변형을 제공합니다.

활용 사례

  • Go 웹 서비스나 API에 역할 기반 권한 검사를 추가합니다.
  • 사용자가 테넌트마다 서로 다른 역할을 갖는 멀티테넌트 규칙을 적용합니다.
  • 리소스 소유자만 해당 리소스를 수정하도록 허용하는 등 속성 기반 규칙을 표현합니다.
  • 런타임에 정책을 업데이트하는 관리자 인터페이스로 권한을 관리합니다.

빠른 시작

  1. 1

    Go modules를 사용해 라이브러리를 설치합니다

    go get github.com/casbin/casbin/v3
  2. 2

    모델 파일과 정책 파일로 Enforcer를 생성합니다

  3. 3

    요청을 확인하려면 액세스할 때마다 코드에서 Enforce를 호출합니다

사용 전 알아둘 점

  • Enforcer는 동시 사용에 안전하지 않습니다. 따라서 런타임에 변경되는 Enforcer를 공유하려면 동기화 버전을 사용해야 합니다.
  • 이 라이브러리는 인증을 처리하거나 사용자와 역할을 관리하지 않으므로, 앱에서 이를 제공해야 합니다.

토픽

자주 묻는 질문

casbin은(는) 무엇인가요?
모델 및 정책 파일로 설정하는 Go 접근 제어 라이브러리로, ACL, RBAC, ABAC 권한 정책을 적용합니다. Apache Casbin은 Go 프로젝트를 위한 권한 부여 라이브러리입니다. 설정 파일에 정의된 접근 제어 모델과 정책 규칙을 바탕으로 주체가 객체에 특정 작업을 수행할 수 있는지 판단합니다. 모델이 설정 파일에 있으므로 권한 부여 방식을 바꿀 때 애플리케이션 코드를 다시 작성하는 대신 보통 설정을 수정하면 됩니다.
casbin은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
casbin은(는) Apache-2.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
casbin은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. casbin의 마지막 커밋은 2026년 11월 4일입니다.
casbin은(는) 어디에 사용할 수 있나요?
Go 웹 서비스나 API에 역할 기반 권한 검사를 추가합니다. 사용자가 테넌트마다 서로 다른 역할을 갖는 멀티테넌트 규칙을 적용합니다. 리소스 소유자만 해당 리소스를 수정하도록 허용하는 등 속성 기반 규칙을 표현합니다. 런타임에 정책을 업데이트하는 관리자 인터페이스로 권한을 관리합니다.
casbin는 어떻게 설치하나요?
Go modules를 사용해 라이브러리를 설치합니다: go get github.com/casbin/casbin/v3 모델 파일과 정책 파일로 Enforcer를 생성합니다 요청을 확인하려면 액세스할 때마다 코드에서 Enforce를 호출합니다
casbin은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/apache/casbin

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트

Google Zanzibar에서 영감을 받은 오픈소스 권한 부여 서비스로, 앱 코드 외부에서 세분화된 RBAC, ReBAC, ABAC 접근 제어를 구현할 수 있습니다.

6천+1 이번 주331GoAGPL-3.0활발히 관리됨업데이트 어제

YAML 정책을 평가해 누가 어떤 리소스에서 어떤 작업을 할 수 있는지 결정하는 셀프 호스팅 권한 부여 엔진(PDP)입니다.

4.6천+9 이번 주218GoApache-2.0활발히 관리됨업데이트 24시간 전