第 6 章: 私のアクセス許可制御方法 - 分散アクセス許可制御
記事概要
1. 分散ロール権限システム
1. フロントエンドとバックエンドを分離した分散型権限制御
2. フロントエンドの多端末分散権限制御
3. バックエンドのマルチモジュール分散権限制御
2. 分散型認証局システム
どの SAAS または管理システムであっても、権限制御の設計は複雑な問題です。
まずはWordPressの権限設計を見てみましょう。
能力 | スーパー管理者 | 管理者 | 編集者 | 著者 | 投稿者 | 購読者 |
サイトの作成 | Y | |||||
サイトの削除 | Y | |||||
ネットワークの管理 | Y | |||||
サイトの管理 | Y | |||||
ネットワークユーザーの管理 | Y | |||||
ネットワークプラグインの管理 | Y | |||||
ネットワークテーマの管理 | Y | |||||
ネットワークオプションの管理 | Y | |||||
アップロードプラグイン | Y | |||||
アップロードテーマ | Y | |||||
アップグレード_ネットワーク | Y | |||||
セットアップネットワーク | Y | |||||
能力 | スーパー管理者 | 管理者 | 編集者 | 著者 | 投稿者 | 購読者 |
activate_plugins | Y | Y (単一サイトまたはネットワーク設定によって有効) | ||||
create_users | Y | Y (単一サイト) | ||||
プラグインの削除 | Y | Y (単一サイト) | ||||
テーマの削除 | Y | Y (単一サイト) | ||||
ユーザーの削除 | Y | Y (単一サイト) | ||||
編集ファイル | Y | Y (単一サイト) | ||||
edit_plugins | Y | Y (単一サイト) | ||||
edit_theme_options | Y | Y | ||||
テーマの編集 | Y | Y (単一サイト) | ||||
edit_users | Y | Y (単一サイト) | ||||
輸出 | Y | Y | ||||
輸入 | Y | Y | ||||
能力 | スーパー管理者 | 管理者 | 編集者 | 著者 | 投稿者 | 購読者 |
インストール_プラグイン | Y | Y (単一サイト) | ||||
テーマのインストール | Y | Y (単一サイト) | ||||
list_users | Y | Y | ||||
オプションの管理 | Y | Y | ||||
プロモートユーザー | Y | Y | ||||
削除_ユーザー | Y | Y | ||||
スイッチテーマ | Y | Y | ||||
アップデートコア | Y | Y (単一サイト) | ||||
update_plugins | Y | Y (単一サイト) | ||||
テーマの更新 | Y | Y (単一サイト) | ||||
編集ダッシュボード | Y | Y | ||||
カスタマイズ | Y | Y | ||||
サイトの削除 | Y | Y | ||||
能力 | スーパー管理者 | 管理者 | 編集者 | 著者 | 投稿者 | 購読者 |
適度なコメント | Y | Y | Y | |||
カテゴリーの管理 | Y | Y | Y | |||
リンクの管理 | Y | Y | Y | |||
edit_others_posts | Y | Y | Y | |||
edit_pages | Y | Y | Y | |||
edit_others_pages | Y | Y | Y | |||
edit_published_pages | Y | Y | Y | |||
公開ページ | Y | Y | Y | |||
削除ページ | Y | Y | Y | |||
他のページの削除 | Y | Y | Y | |||
delete_published_pages | Y | Y | Y | |||
delete_others_posts | Y | Y | Y | |||
delete_private_posts | Y | Y | Y | |||
edit_private_posts | Y | Y | Y | |||
read_private_posts | Y | Y | Y | |||
delete_private_pages | Y | Y | Y | |||
edit_private_pages | Y | Y | Y | |||
read_private_pages | Y | Y | Y | |||
フィルタなし_html | Y | Y (単一サイト) | Y (単一サイト) | |||
フィルタなし_html | Y | Y | Y | |||
能力 | スーパー管理者 | 管理者 | 編集者 | 著者 | 投稿者 | 購読者 |
edit_published_posts | Y | Y | Y | Y | ||
アップロードファイル | Y | Y | Y | Y | ||
公開投稿 | Y | Y | Y | Y | ||
delete_published_posts | Y | Y | Y | Y | ||
edit_posts | Y | Y | Y | Y | Y | |
投稿の削除 | Y | Y | Y | Y | Y | |
能力 | スーパー管理者 | 管理者 | 編集者 | 著者 | 投稿者 | 購読者 |
読む | Y | Y | Y | Y | Y | Y |
ユーザーの役割とユーザーレベルに基づいて、階層的な役割権限制御システムが実装されています。
WordPress の権限制御システムは非常に古典的な権限制御システムですが、WordPress はユーザーと権限の点で非常に「軽量」であるため、WordPress の権限制御システムは完全な「スケルトン」にすぎないと言えます。骸骨だけでも多くの人をめまいさせるのに十分です。
したがって、これらの大規模で複雑なシステムでは、アクセス許可の制御がどれほど途方もなく複雑になるか想像できるでしょう。
私はこれまで多くの製品に携わっており、その範囲は多岐にわたりますが、権限制御システムはほぼすべての製品に関わっており、この分野で多くの経験を積んできました。
私はさまざまな権限制御システムを何度も最適化および簡素化してきました。最後に、簡単で効果的な方法をまとめました。私はこの方法を分散アクセス許可制御と呼んでいます。
パーミッション制御が複雑になる最も根本的な理由は、パーミッションの設計、配布、管理が一元化されているため、さまざまなシナリオでさまざまな役割を「できる」と「できない」という「集中的な」観点から検討する必要があるためです。
ただし、権限の配布と管理が分散化されれば、すべてがはるかにシンプルになります。
1. 分散ロール権限システム
古典的な権限制御システムは、集中型の役割権限システムです。
ロール許可システムは常に主流でした。
ここで紹介するのは分散役割権限システムです。
集中型か分散型かに関係なく、ロール権限システムには共通点が 1 つあります。それは、ロールが権限を決定し、誰がどのような機能を持つかを決定するということです。
分散役割権限システムは 3 つのタイプに分類できます。