Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
casbin — アプリケーションとサービス向けに、ACL、RBAC、ABAC、およびカスタムアクセス制御モデルを強制し、RESTfulなマッチングおよびポリシー管理APIを備えた認可ライブラリ。 | Kitploit
ツール/GitHubGitHub/apache/casbin
認証と認可ID管理アイデンティティ&アクセス管理 (IAM)APIセキュリティ
GitHubapache/casbin

casbin

アプリケーションとサービス向けに、ACL、RBAC、ABAC、およびカスタムアクセス制御モデルを強制し、RESTfulなマッチングおよびポリシー管理APIを備えた認可ライブラリ。

リポジトリを見るウェブサイト
20.3k1.8k2日前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Apache Casbin

Lint Build Coverage Status Godoc Release Discord

ニュース: 正しいApache Casbinポリシーの書き方にまだ悩んでいますか? Apache Casbin online editor が登場しました! https://casbin.apache.org/editor/ でお試しください。

casbin Logo

Apache Casbinは、Golangプロジェクト向けの、パワフルで効率的なオープンソースのアクセス制御ライブラリです。さまざまなアクセス制御モデルに基づく認可の强制执行をサポートします。

Apache Casbinがサポートするすべての言語:

目次

  • サポートされているモデル
  • 仕組み
  • 機能
  • インストール
  • ドキュメント
  • オンラインエディター
  • チュートリアル
  • はじめに
  • ポリシー管理
  • ポリシーの永続化
  • 複数ノード間のポリシー整合性
  • ロールマネージャー
  • ベンチマーク
  • 例
  • ミドルウェア
  • 導入事例

サポートされているモデル

  1. ACL(アクセス制御リスト)
  2. スーパーユーザー対応ACL(スーパーユーザー)
  3. ユーザーなしACL: 認証やユーザーログインがないシステムに特に役立ちます。
  4. リソースなしACL: write-article、read-log のような権限を使用して、個別のリソースではなくリソースの種類を対象とするシナリオもあります。特定の記事やログへのアクセスを制御するものではありません。
  5. RBAC(ロールベースアクセス制御)
  6. リソースロール付きRBAC: ユーザーとリソースの両方が同時にロール(またはグループ)を持つことができます。
  7. ドメイン/テナント付きRBAC: ユーザーはドメイン/テナントごとに異なるロールセットを持つことができます。
  8. ABAC(属性ベースアクセス制御): resource.Owner のようなシンタックスシュガーを使用して、リソースの属性を取得できます。
  9. RESTful: /res/*、/res/:id のようなパスと、GET、POST、PUT、DELETE のようなHTTPメソッドをサポートします。

仕組み

Casbinでは、アクセス制御モデルは**PERMメタモデル(Policy、Effect、Request、Matchers)**に基づいてCONFファイルに抽象化されます。したがって、プロジェクトの認可メカニズムの切り替えやアップグレードは、設定を変更するだけの簡単な作業です。利用可能なモデルを組み合わせて、独自のアクセス制御モデルをカスタマイズできます。たとえば、RBACロールとABAC属性を1つのモデルにまとめ、1つのポリシールールセットを共有できます。

Casbinで最も基本的でシンプルなモデルはACLです。ACLのモデルCONFは次のとおりです:

root@kitploit:~
# Request definition
[request_definition]
r = sub, obj, act

# Policy definition
[policy_definition]
p = sub, obj, act

# Policy effect
[policy_effect]
e = some(where (p.eft == allow))

# Matchers
[matchers]
m = r.sub == p.sub && r.obj == p.obj && r.act == p.act

ACLモデルのポリシーの例は次のとおりです:

root@kitploit:~
p, alice, data1, read
p, bob, data2, write

つまり:

  • aliceはdata1を読み取ることができます
  • bobはdata2を書き込むことができます

末尾に'\'を付けることでマルチラインモードもサポートしています:

root@kitploit:~
# Matchers
[matchers]
m = r.sub == p.sub && r.obj == p.obj \
  && r.act == p.act

さらに、ABACを使用している場合は、Casbin golang版で次のように演算子 in を試せます(jCasbinとNode-Casbinはまだサポートされていません):

root@kitploit:~
# Matchers
[matchers]
m = r.obj == p.obj && r.act == p.act || r.obj in ('data2', 'data3')

ただし、配列の長さが1より大きいことを確認する必要があります。そうしないとパニックが発生します。

その他の演算子については、govaluate を参照してください。

機能

Apache Casbinが行うこと:

  1. クラシックな {subject, object, action} 形式またはユーザーが定義したカスタム形式でポリシーを强制执行します。許可と拒否の両方の認可をサポートします。
  2. アクセス制御モデルとそのポリシーの保存を処理します。
  3. ロールとユーザーのマッピング、およびロール間のマッピング(RBACにおけるロール階層)を管理します。
  4. root や administrator のような組み込みスーパーユーザーをサポートします。スーパーユーザーは明示的な権限なしにすべてを実行できます。
  5. ルールマッチングをサポートする複数の組み込み演算子を備えています。たとえば、keyMatch はリソースキー /foo/bar をパターン /foo* にマッピングできます。

Apache Casbinが行わないこと:

  1. 認証(ユーザーがログインするときの username と password の検証)
  2. ユーザーまたはロールのリストの管理。これらのエンティティの管理はプロジェクト自体が行う方が便利だと考えています。ユーザーは通常パスワードを持っており、Apache Casbinはパスワードコンテナとして設計されていません。ただし、Apache CasbinはRBACシナリオのためにユーザーとロールのマッピングを保存します。

インストール

root@kitploit:~
go get github.com/casbin/casbin/v3

ドキュメント

https://casbin.apache.org/docs/overview

オンラインエディター

WebブラウザーでCasbinモデルとポリシーを作成するには、オンラインエディター(https://casbin.apache.org/editor/)も使用できます。プログラミング言語のIDEのように、``syntax highlightingやcode completion`` などの機能を提供します。

チュートリアル

https://casbin.apache.org/docs/tutorials

はじめに

  1. モデルファイルとポリシーファイルを指定してCasbinエンフォーサーを新規作成します:

    root@kitploit:~
    e, _ := casbin.NewEnforcer("path/to/model.conf", "path/to/policy.csv")
    

注: ファイルの代わりにDB内のポリシーを使ってエンフォーサーを初期化することもできます。詳細はポリシーの永続化セクションを参照してください。

  1. アクセスが発生する直前に、コードに認可フックを追加します:

    root@kitploit:~
    sub := "alice" // the user that wants to access a resource.
    obj := "data1" // the resource that is going to be accessed.
    act := "read" // the operation that the user performs on the resource.
    
    if res, _ := e.Enforce(sub, obj, act); res {
        // permit alice to read data1
    } else {
        // deny the request, show an error
    }
    
  2. 静的ポリシーファイルに加えて、Apache Casbinは実行時に権限管理を行うAPIも提供します。たとえば、ユーザーに割り当てられたすべてのロールを次のように取得できます:

    root@kitploit:~
    roles, _ := e.GetImplicitRolesForUser(sub)
    

その他の使用方法については、ポリシー管理APIを参照してください。

ポリシー管理

Apache Casbinは権限を管理するための2つのAPIセットを提供します:

  • Management API: Apache Casbinのポリシー管理を完全にサポートするプリミティブAPIです。
  • RBAC API: RBAC向けのより使いやすいAPIです。このAPIはManagement APIのサブセットです。RBACユーザーはこのAPIを使用してコードを簡素化できます。

モデル管理とポリシー管理のためのWebベースのUIも提供しています:

モデルエディター

ポリシーエディター

ポリシーの永続化

https://casbin.apache.org/docs/adapters

複数ノード間のポリシー整合性

https://casbin.apache.org/docs/watchers

ロールマネージャー

https://casbin.apache.org/docs/role-managers

ベンチマーク

https://casbin.apache.org/docs/benchmark

例

ミドルウェア

Webフレームワーク向けのAuthzミドルウェア: https://casbin.apache.org/docs/middlewares

導入事例

https://casbin.apache.org/docs/adopters

貢献方法

コントリビューションガイドをお読みください。

コントリビューター

このプロジェクトは、貢献してくださるすべての人々によって成り立っています。

スター履歴

Star History Chart

ライセンス

このプロジェクトはApache 2.0ライセンスの下でライセンスされています。

お問い合わせ

何か問題や機能リクエストがあれば、お問い合わせください。PRも歓迎します。

  • https://github.com/apache/casbin/issues
  • https://discord.gg/S5UjpzGZjN
ツールをダウンロード
golangjavanodejsphp
CasbinjCasbinnode-CasbinPHP-Casbin
本番利用可能本番利用可能本番利用可能本番利用可能
pythondotnetc++rust
PyCasbinCasbin.NETCasbin-CPPCasbin-RS
本番利用可能本番利用可能本番利用可能本番利用可能
  • Deny-override: 許可と拒否の両方の認可をサポートし、拒否が許可を上書きします。
  • Priority: ポリシールールはファイアウォールルールのように優先順位を付けることができます。
  • モデルモデルファイルポリシーファイル
    ACLbasic_model.confbasic_policy.csv
    スーパーユーザー付きACLbasic_model_with_root.confbasic_policy.csv
    ユーザーなしACLbasic_model_without_users.confbasic_policy_without_users.csv
    リソースなしACLbasic_model_without_resources.confbasic_policy_without_resources.csv
    RBACrbac_model.confrbac_policy.csv
    リソースロール付きRBACrbac_model_with_resource_roles.confrbac_policy_with_resource_roles.csv
    ドメイン/テナント付きRBACrbac_model_with_domains.confrbac_policy_with_domains.csv
    ABACabac_model.confN/A
    RESTfulkeymatch_model.confkeymatch_policy.csv
    Deny-overriderbac_model_with_deny.confrbac_policy_with_deny.csv
    Prioritypriority_model.confpriority_policy.csv