diff --git a/README-CN.md b/README-CN.md index e798481..cffb90f 100644 --- a/README-CN.md +++ b/README-CN.md @@ -1,4 +1,5 @@ [English](README.md) +[Japanese](README-JA.md) ## Introductions diff --git a/README-JA.md b/README-JA.md new file mode 100644 index 0000000..f254f3a --- /dev/null +++ b/README-JA.md @@ -0,0 +1,155 @@ +[中国語](README-CN.md) +[英語](README.md) + +## 紹介 + +Wolfは、すべてのHTTPアプリケーションに適した汎用のロールベースアクセス制御(RBAC)権限システムであり、統一された認可とアクセス制御機能を提供します。 + +企業内では、さまざまなバックエンドサービスとそれに対応する管理インターフェースが異なるアカウントシステムと権限モジュールを持つことが一般的です。この冗長性はリソースの浪費と管理の混乱を引き起こし、特に異なるチームがこれらのシステムを開発する場合に問題が顕著になります。Wolfは、既存のシステムに変更を加えることなく、さまざまなプラットフォームやシステム全体で統一されたアカウントと認可管理を実現します。 + +## コミュニティ + +- QQグループ: 85892505 + +## 特徴 + +- **言語に依存しない**: 静的なWebページ、JSP、PHP、ASP、Python、Node.jsなど、HTTP対応のアプリケーションに対応。 +- **低結合 & 非侵入型**: 新しいアプリケーションの統合を容易にし、リソース権限をプロキシレイヤーで管理。 +- **統合管理コンソール** (`console`モジュール): アプリケーション、ユーザー、ロール、権限、リソースを管理。 +- **OAuth 2.0サポート**: Wolfアカウントでのログインを可能にし、シームレスなアプリケーション統合を実現。 +- **二重認証モード**: パスワード認証とLDAP認証をサポート。 +- **包括的なアプリケーションサポート**: Restfulインターフェースとバックエンドでレンダリングされた純粋なHTMLアプリケーションに対応。 +- **アクセスログ記録**: 詳細なアクセスログを通じて監査とトラブルシューティングをサポート。 +- **広範なテスト**: コードカバレッジが90%を超える。 +- **データベース互換性**: PostgreSQLとMySQLに対応。 +- **APISIXゲートウェイサポート**: [Apache APISIX: Wolf-RBAC](https://github.com/apache/apisix/blob/master/docs/en/latest/plugins/wolf-rbac.md)と統合。 +- システムは3つの主要モジュールで構成されています: + * `Wolf-Server`: サービスとバックエンド機能を実装。 + * `Wolf-Console`: 管理のためのフロントエンドコード。 + * `Wolf-Agent`: RBACのアクセスチェックプロキシ。 +- システム内のエンティティオブジェクト: + * **アプリケーション**: 複数のアプリケーションをサポートし、異なる権限、ロール、リソースを持つことができます。RBACオブジェクトの関係チャートを視覚化。 + * **ユーザー**: システム全体で統一されたユーザーベース。ユーザー固有の認可には以下が含まれます: + * **管理者権限**: 管理者は**コンソール**にログインしてバックエンド管理を行い、アプリケーションを監督。 + * **アプリケーションリスト**: ユーザーはさまざまなアプリケーションに関連付けられます。管理者にとっては管理機能を意味し、非管理者にとってはログインと使用権を意味します。 + * **ロール**: ユーザーは複数のロールを割り当てられ、各ロールから包括的な権限セットを取得。 + * **権限**: 直接の権限割り当ても可能で、柔軟性を高めるために標準的なRBACモデルから逸脱。 + * **ロール**: ユーザーアクセスと機能を構造化するための権限のコレクション。 + * **権限カテゴリ**: 権限を管理しやすいグループに整理し、主要な機能モジュールに合わせて分類。 + * **権限**: リソースと一対多の関係を確立し、単一または複数のリソースに対して共有権限を設定。 + * **リソース**: 主にHTTPリクエストに関連し、**マッチタイプ**、**名前**、**アクション**の組み合わせで一意のリソースを特定。主な属性は以下の通り: + * **マッチタイプ**: URLのマッチ方法を定義し、正確、サフィックス、プレフィックスのマッチング方法を含む。 + * **名前**: 特定のHTTP URLで、マッチタイプに基づいた命名規則。 + * **アクション**: 適用されるHTTPメソッドで、**ALL**はすべてのメソッドを含む。 + * **権限**: リソースにアクセスするために必要な権限。システムには2つの組み込み権限があり、**Allow All**はすべてのユーザーがアクセス可能、**Deny All**はすべてのユーザーがアクセス不可。 + * **監査ログ**: システム内のすべてのインタラクションを包括的に記録し、ユーザーの詳細、アクセスメトリクス、リソースマッチを含む、強力な監査と問題追跡をサポート。 +* リソースマッチングメソッドはさまざまな優先順位に対応し、以下のルールに従います: + * **マッチタイプの優先順位**: マッチタイプの優先順位は次の通りです: + * **正確マッチ**: このタイプは最も高い優先順位を持ちます。 + * **サフィックスマッチ**: 次に優先順位が高く、URLのサフィックスに焦点を当てます。 + * **プレフィックスマッチ**: 最も低い優先順位で、URLのプレフィックスに重点を置きます。 + * **アクション** (HTTPメソッドを表す): + * 'アクション'は使用されるHTTPメソッドに対応します。 + * **ALL**: このメソッドはHTTPメソッドの中で最も低い優先順位を持ちます。 + * **特定のメソッド** (例: GET, POST, PUT): これらのメソッドは同等の優先順位を持ち、それぞれが'ALL'メソッドよりも高い順位に位置します。 + * **名前** (HTTP URLを示す): + * '名前'はHTTP URLを指します。 + * 優先順位はURLの長さに基づいており、URLが長いほど優先順位が高くなります。 + +**注意: ここでのURLは標準URL構造のパスコンポーネントに限定され、ドメイン、ポート、パラメータの詳細は含まれません** + +## アーキテクチャ + +![アーキテクチャ](./docs/imgs/architecture.png) + +## 関係 + +![関係](./docs/imgs/data-model.png) + +## 技術 + +- **サーバー**: NodeJS, KOA, Sequelize, JWT +- **コンソール**: VueJS, Element, Babel, NodeJS +- **エージェント**: OpenResty(ngx_lua) +- **データベース**: PostgreSQL. +- **キャッシュ**: Redis + +## はじめに + +[はじめに](./quick-start-with-docker/README.md) + +## プレビュー + +#### コンソール + +| ![アプリケーションリスト](./docs/imgs/screenshot/console/application.png) | +|:--:| +| *アプリケーションリスト* | + +| ![アプリケーションリスト](./docs/imgs/screenshot/console/application-diagram.png) | +|:--:| +| *アプリケーション、ユーザー、ロール、権限の関係* | + +| ![ユーザー管理](./docs/imgs/screenshot/console/user.png) | +|:--:| +| *ユーザー管理* | + +| ![ロール管理](./docs/imgs/screenshot/console/role.png) | +|:--:| +| *ロール管理* | + +| ![ロールの権限の詳細](./docs/imgs/screenshot/console/permission-detail.png) | +|:--:| +| *ロールの権限の詳細/権限のグループ表示* | + +| ![権限管理](./docs/imgs/screenshot/console/permission.png) | +|:--:| +| *権限管理* | + +| ![監査ログ](./docs/imgs/screenshot/console/audit-log.png) | +|:--:| +| *監査ログ* | + +#### クライアント/デモ + +| ![クライアントログイン](./docs/imgs/screenshot/client/login.png) | +|:--:| +| *クライアントログイン* | + +| ![メインページ](./docs/imgs/screenshot/client/main.png) | +|:--:| +| *メインページ (注: 上部に情報バーを追加)* | + +| ![権限なしページ](./docs/imgs/screenshot/client/no-permission.png) | +|:--:| +| *権限なしページ* | + +## デプロイ + +[デプロイドキュメント](./docs/deploy.md) + +[LDAP構成](./docs/ldap-config.md) + +[APIドキュメント](./docs/admin-api.md) + +[OAuth2インターフェースドキュメント](./docs/admin-api-oauth2.0.md) + +## テスト + +[サーバーAPIユニットテスト](./docs/unittest.md) + +## パフォーマンス + +[`エージェント` APIパフォーマンステスト](./docs/perf.md) + +## マニュアルドキュメント + +[使用方法](./docs/usage.md) + +## 変更履歴 + +[変更履歴](./ChangeLog.md) + +## ライセンス + +[MIT](./LICENSE) diff --git a/README.md b/README.md index a8e156e..0bbd3a7 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,5 @@ [Chinese](README-CN.md) +[Japanese](README-JA.md) ## Introduction