メインコンテンツにスキップ

Casbin

ACL、RBAC、Golang、Java、C/C++、Node のようなアクセス制御モデルをサポートする認証ライブラリ。 s, Javascript, PHP, Laravel, Python, .NET (C#), Delphi, Rust, Ruby, Swift (Objective-C), Lua (OpenRest), Dart (Flutter) and 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アダプタの完全なリストは以下のとおりです。 新しいアダプターに対するサードパーティの貢献を歓迎します。 アダプターの詳細については、こちらのドキュメントを参照してください: アダプター.
Policy Persistence
Policy enforcement at scale

規模に応じた政策の実施

フィルタされたポリシー管理をサポートするアダプタもあります。 これは、Casbinによってロードされたポリシーが、与えられたフィルタに基づいてストレージ内のポリシーのサブセットであることを意味します。 これにより、ポリシー全体を解析する際に、大規模なマルチテナント環境での効率的なポリシー執行がパフォーマンスのボトルネックになります。

ロールマネージャー

ロールマネージャは、Casbin内のRBACロール階層(ユーザーロールマッピング)を管理するために使用されます。 ロールマネージャは、CasbinポリシールールまたはLDAP、Okta、Auth0、Azure ADなどの外部ソースからロールデータを取得できます。 ロールマネージャの実装をサポートします。 軽量を維持するために、メインライブラリにロールマネージャーのコードを入れません(デフォルトのロールマネージャを除く)。 Casbin ロールマネージャの完全なリストは次のように提供されます: ロールマネージャー
Role manager

誰がCasbinを使用していますか?

数百のプロジェクトが、確立されたフォーチュン500企業から新しいスタートアップまでCasbinを使用しています。 何が達成されるか知りたい場合は、 これらのアプリをチェックしてください