Casbin

Casbin

  • ドキュメント
  • API
  • エディター
  • IDE プラグイン
  • Single Sign-On (SSO)
  • フォーラム
  • ヘルプ
  • ブログ
  • Pricing
  • Contact Sales
  • Languages icon日本語
    • English
    • 中文
    • 한국어
    • Русский
    • Français
    • Deutsch
    • 翻訳に協力する
  • GitHub

›高度な使い方

基本

  • 概要
  • はじめよう
  • 仕組み
  • チュートリアル

モデル

  • サポートされるモデル
  • モデルの構文
  • エフェクト
  • 関数
  • RBAC
  • RBAC with Pattern
  • ドメイン付きRBAC
  • Casbin RBAC v.s. RBAC96
  • ABAC
  • 優先モデル
  • スーパー管理者

ストレージ

  • モデル ストレージ
  • ポリシーストレージ
  • ポリシーサブセットの読み込み

拡張

  • Enforcers
  • アダプター
  • Watchers
  • 派遣者
  • ロールマネージャー
  • ミドルウェア
  • GraphQL Middlewares
  • Cloud Native Middlewares

API

  • API の概要
  • 管理API
  • RBAC API
  • Domains API による RBAC
  • RoleManager API
  • データ権限

高度な使い方

  • マルチスレッド
  • Benchmarks
  • パフォーマンス最適化
  • Kubernetes の承認
  • Envoyによるサービスメッシュの承認

管理

  • 管理者ポータル
  • カスビンサービス
  • ログとエラー処理
  • フロントエンドの使用法

エディター

  • オンラインエディター
  • IDE プラグイン

もっと見る

  • Adopters
  • コントリビューション
  • プライバシーポリシー
  • 利用規約
Translate

パフォーマンス最適化

何百万人ものユーザーまたは権限を持つ本番環境で適用されると、Casbinの強制力でパフォーマンスが低下する可能性があります。通常、2つの原因があります。

大容量トラフィック

1秒あたりのリクエスト数が大きすぎます。例えば、単一のCasbinインスタンスに対して10,000のリクエスト/秒などです。 このような場合、単一のCasbinインスタンスは通常、すべてのリクエストを処理するのに十分ではありません。 2つの解決策があります:

  1. マルチスレッドを使用して複数のCasbinインスタンスを有効にすることで、マシン内のすべてのコアを完全に使用できます。 詳細はこちらをご覧ください: マルチスレッド.

  2. Casbin インスタンスをクラスタ(複数のマシン)にデプロイします。 Watcherを使用して、すべてのCasbinインスタンスが一貫していることを保証します。 詳細はこちらをご覧ください: ウォッチャー.

note

上記の両方のメソッドを同時に使用することができます。例えば、Casbin を 10 マシンクラスタにデプロイするなどです。 各マシンには同時に5スレッドがあり、Casbin強制リクエストに応答します。

ポリシールールの数が多いです

クラウドまたはマルチテナント環境で何百万ものポリシールールが必要になる場合があります。 各執行呼び出しまたは最初にポリシールールを読み込むことは非常に遅いです。 このようなケースは通常、いくつかの方法で軽減できます。

  1. あなたのカスビンモデルまたはポリシーはよく設計されていません。 よく書かれたモデルとポリシーは、ユーザー/テナントごとに重複したロジックを抽象化し、ルールの数を非常に小さなレベル (< 100): e. 、すべてのテナントでいくつかのデフォルトのルールを共有し、ユーザーに後でルールをカスタマイズさせることができます。 カスタマイズされたルールはデフォルトのルールを上書きすることができます。 それでも質問がある場合は、GitHub Issue を Casbin リポジトリに送信してください。

  2. Casbin 施行者が小さなポリシールールのみをロードできるようにするためにシャーディングを行います。例えば、 enforcer_0 は tenant_0 から tenant_99 までしか機能しません。enforcer_1 は tenant_100 から tenant_199までしか機能しません。 すべてのポリシールールのサブセットのみをロードするには、詳細は次を参照してください: ポリシーサブセットの読み込み.

  3. 直接ユーザーの代わりにRBACロールに権限を付与します。 CasbinのRBACは、(キャッシュとして)ロール継承ツリーによって実装されています。 だから、アリスのようなユーザーを考えると、CasbinはRBACツリーをクエリしてロールユーザーの関係を確認し、強制を行うのにO(1)時間しか使用しません。 gルールが頻繁に変更されない場合は、RBACツリーを更新する必要はありません。 詳細はこちらをご覧ください: https://github.com/casbin/casbin/issues/681#issuecomment-763801583

note

上記のメソッドはすべて同時に試すことができます。 :::

← BenchmarksKubernetes の承認 →
Casbin
Docs
Getting StartedManagement APIRBAC APIMiddlewares
Community
Who's using Casbin?Stack Overflow
Casbin          jCasbin
Node-Casbin   PHP-CasbinPyCasbin          Casbin.NETCasbin-CPP        Casbin-RS
Follow @casbinHQ
Copyright © 2022 Casbin Organization