OSS探訪GitHubでログイン

ACL・RBAC・ABACをpolicy modelとしてapplicationから分離するGo authorization library

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
20,433
主要言語
Go
ライセンス
Apache-2.0
リポジトリ最終更新
2026/10/05
ページ内ナビ

概要

Apache CasbinはGo applicationへauthorizationを組み込むaccess-control libraryです。ACL、RBAC、ABAC、domain/tenant付きRBAC、RESTful path、deny-override、priority等をmodelとpolicyとして定義し、application codeからenforcerで判定できます。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

ACL・RBAC・ABACなど複数のaccess-control modelを同じenforcerで扱う

model CONFでrequest、policy、role、effect、matcherを定義し、ACL、RBAC、ABAC、tenant/domain付きrole等をapplication要件に合わせて構成できます。

出典:[2]

policy persistenceとrole managerをadapterとして分離する

policyはfileやdatabase等のadapterへ永続化でき、role hierarchyや複数node間のpolicy consistencyも周辺componentで拡張できます。authorization ruleをbusiness codeから分離しやすい設計です。

出典:[2]

向いている用途

APIや業務systemでpermission policyをcode条件分岐から切り離したい場合に向く

role、resource、action、tenant、attributeを使うauthorizationを統一し、permission変更をpolicyとして管理したいbackendに適します。

出典:[2]

導入前の確認

v3.11.0のgo.modはGo 1.13。repoはapache/casbinへ移管済みだがmodule pathはcasbin/casbin/v3

v3.11.0のgo.modはgithub.com/casbin/casbin/v3・Go 1.13を宣言します。GitHub repositoryはApacheへ移管されています。releaseではpolicy order保持、conditional role manager、non-ASCII literal等の修正が含まれるため、policy serializationとrole判定をupgrade testしてください。

出典:[3][4][2]

参考にした公式資料

  1. [1]apache/casbin — GitHub repository(2026-10-06)
  2. [2]Apache Casbin v3.11.0 — README(2026-10-06)
  3. [3]Apache Casbin v3.11.0 — go.mod(2026-10-06)
  4. [4]Apache Casbin v3.11.0 release(2026-10-06)
  5. [5]Apache Casbin Apache-2.0 license(2026-10-06)
編集部からの補足

認証ではなく「誰が何へアクセスできるか」をpolicyとして分離するauthorization libraryです。現在のGitHub repositoryはapache/casbinですが、v3.11.0のGo module pathはgithub.com/casbin/casbin/v3のままなので、repository URLとimport pathを混同しないでください。

3ステップで試す

  1. 1

    ソースを取得

    git clone --depth 1 https://github.com/apache/casbin.git
  2. 2

    リポジトリへ移動

    cd casbin
  3. 3

    公式手順を確認

    READMEのInstallation / Quick Start / Getting Startedにある公式コマンドを続けて実行してください。

    find . -maxdepth 1 -iname 'README*' -exec sed -n '1,220p' {} \; -quit
公式READMEで確認

成長

成長の推移 · 直近30日

20,433 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
6
Open PR
2

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • casbin
  • access-control
  • authorization
  • rbac
  • abac
  • acl
  • auth
  • authz
  • permission
  • authentication
  • authn
  • iam
Stars
20,433
Forks
1,761
Watchers
238
Open Issues
37
Contributors
155
所有者種別
Organization
主要言語
Go
ライセンス
Apache-2.0
リポジトリ最終更新
2026/10/05

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?