yii2 で rbac を実装する方法
RBAC (ロールベースのアクセス制御) ロールベースのアクセス制御。
1. 基本的な考え方: ユーザーとアクセス許可の間にロールの概念を導入し、ユーザーとロールを接続し、ロールの承認を通じてシステム リソースへのユーザー アクセスを制御します。 、ロールの導入により、アクセス許可の管理が大幅に簡素化されます。 (推奨学習: yii フレームワーク )
1). 役割: 権限と権限の集合として理解できます。たとえば、フォーラム システムでは、「スーパー管理者」と「モデレーター」が役割です。
2).権限: モデレーターは、フォーラムの投稿、フォーラムのユーザーなどを管理できます。これらは権限です。
Yii2 での rbac の実装
1.Yii2 は一般的な階層型 RBAC を実装しており、それが従うモデルは NIST RBAC モデルでもあります。
2. yii2 ではルールという概念が追加されました。
例: 記事システムの場合、管理者と一般ユーザーがおり、管理者は記事に対してあらゆる操作を実行できますが、記事を作成したり、作成した記事を変更したりできるのは一般ユーザーのみです。一般のユーザーは記事を修正する権限を持っていますが、Extra では自分の記事しか修正できないという制約があり、この Extra の検証がルールの役割となります。
3. yii2 の権限管理実装は、file と db の 2 つのキャリアをサポートします。db ベースの実装の中核は 4 つのテーブルです:
1) ストレージ ロールまたは権限テーブル: auth_item (タイプ: 1 はロールを表し、2 は権限を表します)
CREATE TABLE `auth_item` ( `name` varchar(64) NOT NULL, `type` int(11) NOT NULL, `description` text, `rule_name` varchar(64) DEFAULT NULL, `data` text, `created_at` int(11) DEFAULT NULL, `updated_at` int(11) DEFAULT NULL, PRIMARY KEY (`name`), KEY `rule_name` (`rule_name`), KEY `type` (`type`), CONSTRAINT `auth_item_ibfk_1` FOREIGN KEY (`rule_name`) REFERENCES `auth_rule` (`name`) ON DELETE SET NULL ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8
2) 権限とロールの上位と下位の関連付けテーブル: auth_item_child
(関係が含まれます: ロールにはロールを含めることができ、ロールには権限を含めることができ、権限には権限を含めることができますが、権限にロールを含めることはできません)
CREATE TABLE `auth_item_child` ( `parent` varchar(64) NOT NULL, `child` varchar(64) NOT NULL, PRIMARY KEY (`parent`,`child`), KEY `child` (`child`), CONSTRAINT `auth_item_child_ibfk_1` FOREIGN KEY (`parent`) REFERENCES `auth_item` (`name`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `auth_item_child_ibfk_2` FOREIGN KEY (`child`) REFERENCES `auth_item` (`name`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8
3) ユーザーと権限 (ロール) の割り当てテーブル: auth_assignment
CREATE TABLE `auth_assignment` ( `item_name` varchar(64) NOT NULL, `user_id` varchar(64) NOT NULL, `created_at` int(11) DEFAULT NULL, PRIMARY KEY (`item_name`,`user_id`), CONSTRAINT `auth_assignment_ibfk_1` FOREIGN KEY (`item_name`) REFERENCES `auth_item` (`name`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8
4) ルール テーブル: auth_rule
CREATE TABLE `auth_rule` ( `name` varchar(64) NOT NULL, `data` text, //存的是一个序列化的实现了yii\rbac\Rule接口的类的一个对象实例 `created_at` int(11) DEFAULT NULL, `updated_at` int(11) DEFAULT NULL, PRIMARY KEY (`name`), KEY `name` (`name`), KEY `created_at` (`created_at`), KEY `updated_at` (`updated_at`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='权限规则表';
以上がyii2 で rbac を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









この記事では、コンテナライゼーション、オーケストレーション、セキュリティ対策によるスケーラビリティ、信頼性、効率に焦点を当てたクラウドネイティブ環境でYIIアプリケーションを展開するためのベストプラクティスについて説明します。

この記事では、YIIをサーバーレスアーキテクチャで使用するための重要な考慮事項について説明し、ステートレス性、コールドスタート、機能サイズ、データベースの相互作用、セキュリティ、監視に焦点を当てています。また、最適化戦略と潜在的な統合をカバーしています

この記事では、組み込みモジュール、BDD、さまざまなテストタイプ、モッキング、CI統合、およびコードカバレッジを使用することに焦点を当てたCodeceptionを使用して、YIIアプリケーションをテストするための戦略について説明します。

YIIの組み込みテストフレームワークは、PHPunit統合、フィクスチャ管理、さまざまなテストタイプのサポートなどの機能を備えたアプリケーションテストを強化し、コードの品質と開発慣行を改善します。

この記事では、YIIデバッグツールバー、Blackfire、New Relic、XDebug、DataDogやDynatraceなどのAPMソリューションなど、YIIアプリケーションのパフォーマンスを監視およびプロファイリングするためのツールについて説明します。

この記事では、YIIとWebSocketsを使用したリアルタイムデータ同期の実装、パフォーマンスとセキュリティのためのセットアップ、統合、ベストプラクティスをカバーしています。

この記事では、YIIアプリケーションを生産に展開するための重要な考慮事項、環境のセットアップ、構成管理、パフォーマンスの最適化、セキュリティ、ロギング、監視、展開戦略、バックアップ/回復計画に焦点を当てています。

この記事では、SaaS開発に対するYiiの利点について説明し、パフォーマンス、セキュリティ、および迅速な開発機能に焦点を当てて、スケーラビリティを高め、市場からの時間を短縮します。
