Maison cadre php YII Gestion des autorisations RBAC dans le framework Yii : contrôle des autorisations d'accès des utilisateurs

Gestion des autorisations RBAC dans le framework Yii : contrôle des autorisations d'accès des utilisateurs

Jun 21, 2023 am 10:43 AM
yii框架 rbac权限管理 用户访问权限

Avec le développement continu d'Internet, de plus en plus de sites Web et d'applications doivent mettre en œuvre la gestion et le contrôle des autorisations des utilisateurs pour garantir la sécurité et la fiabilité des sites Web et des applications. En tant que framework PHP populaire, le framework Yii fournit un ensemble complet de mécanismes de gestion des autorisations RBAC (Role-Based Access Control) pour contrôler les autorisations d'accès des utilisateurs au système. Cet article présentera le mécanisme de gestion des autorisations RBAC dans le framework Yii et démontrera son utilisation avec un exemple simple.

1. Introduction au mécanisme de gestion des autorisations RBAC

RBAC est un mécanisme de contrôle d'accès basé sur les rôles. En associant respectivement les utilisateurs et les autorisations aux rôles, il réalise le découplage entre les utilisateurs et les autorisations pendant le processus d'autorisation des rôles, résolvant ainsi le problème de Le problème des faibles performances du système causées par des modifications des autorisations des utilisateurs. Dans RBAC, les autorisations sont divisées en opérations, objets et règles. Les opérations font référence à des opérations sur des données, telles que la création, la lecture, la mise à jour, la suppression, etc. Les objets font référence à des données qui doivent être exploitées, telles que des articles, des commentaires, des utilisateurs, etc. Les règles sont des restrictions sur les autorisations, par exemple si cela Le propriétaire des données, etc. Un rôle est un ensemble d'autorisations utilisateur, composé de plusieurs autorisations. Il comprend généralement un ensemble d'opérations, un ensemble d'autorisations d'objet et certaines règles. Dans le framework Yii, RBAC est implémenté via CPhpAuthManager.

2. Opérations de base de la gestion des autorisations RBAC

Tout d'abord, nous devons ajouter des autorisations et des rôles au système. Ceci peut être réalisé en ajoutant de nouvelles autorisations et rôles dans l'objet de gestion des autorisations CPhpAuthManager dans le framework Yii. Voici un exemple de code pour ajouter de nouvelles autorisations :

// 添加新权限
$auth=Yii::app()->authManager; 
$auth->createOperation('createPost','create a new post'); 
$auth->createOperation('readPost','read a post'); 
$auth->createOperation('updatePost','update a post'); 
$auth->createOperation('deletePost','delete a post'); 
Copier après la connexion

Dans le code ci-dessus, nous avons ajouté quatre nouvelles autorisations : créer des articles, lire des articles, mettre à jour des articles et supprimer des articles.

Ensuite, nous devons définir le rôle et ajouter des autorisations au rôle. Le code suivant montre comment ajouter les autorisations ci-dessus à un rôle nommé « admin » :

// 添加一个新角色,将权限添加到角色中
$auth=Yii::app()->authManager; 
$role=$auth->createRole('admin'); 
$role->addChild('createPost'); 
$role->addChild('readPost'); 
$role->addChild('updatePost'); 
$role->addChild('deletePost'); 
Copier après la connexion

Dans le code ci-dessus, nous définissons un rôle nommé « admin » et ajoutons les quatre autorisations ci-dessus au rôle intermédiaire.

Enfin, lors du traitement de la demande d'accès de l'utilisateur, nous devons vérifier si l'utilisateur dispose des autorisations correspondantes. Le code suivant montre comment vérifier si un utilisateur dispose de l'autorisation « createPost » :

//检查用户是否具有createPost权限
$auth=Yii::app()->authManager; 
if($auth->checkAccess('createPost',$userId))
{
    // 用户具有权限,进行操作
}
else
{
    // 用户不具有权限,返回错误
}
Copier après la connexion

Dans le code ci-dessus, nous obtenons d'abord l'objet de gestion des autorisations $auth, puis appelons sa méthode checkAccess pour vérifier si l'utilisateur dispose de l'autorisation createPost. . Si l'utilisateur dispose de cette autorisation, l'opération correspondante peut être effectuée, sinon un message d'erreur doit être renvoyé.

3. Exemple de gestion des autorisations RBAC

Supposons que nous ayons un site Web de blog contenant trois entités de base : les articles, les commentaires et les utilisateurs. Dans cet exemple, nous définirons deux rôles de base : Administrateur et Utilisateur normal. Les administrateurs disposent d'autorisations de création, de lecture, de mise à jour et de suppression sur toutes les entités, tandis que les utilisateurs ordinaires n'ont que des autorisations de lecture sur les articles et les commentaires.

Tout d'abord, configurez le composant de gestion des autorisations RBAC dans le fichier de configuration du framework Yii :

'authManager'=>array(
    'class' => 'CDbAuthManager',
    'connectionID' => 'db',
    'itemTable' => '{{authitem}}',
    'assignmentTable' => '{{authassignment}}',
    'itemChildTable' => '{{authitemchild}}',
),
Copier après la connexion

Ensuite, dans notre contrôleur, ajoutez le code suivant pour ajouter de nouvelles autorisations et rôles :

$auth = Yii::app()->authManager;

// 添加新权限
$auth->createOperation('createArticle', 'create a new article');
$auth->createOperation('readArticle', 'read an article');
$auth->createOperation('updateArticle', 'update an article');
$auth->createOperation('deleteArticle', 'delete an article');
$auth->createOperation('createComment', 'create a new comment');
$auth->createOperation('readComment', 'read a comment');
$auth->createOperation('updateComment', 'update a comment');
$auth->createOperation('deleteComment', 'delete a comment');

// 添加新角色
$roleAdmin = $auth->createRole('admin');
$roleAdmin->addChild('createArticle');
$roleAdmin->addChild('readArticle');
$roleAdmin->addChild('updateArticle');
$roleAdmin->addChild('deleteArticle');
$roleAdmin->addChild('createComment');
$roleAdmin->addChild('readComment');
$roleAdmin->addChild('updateComment');
$roleAdmin->addChild('deleteComment');

$roleUser = $auth->createRole('user');
$roleUser->addChild('readArticle');
$roleUser->addChild('readComment');

// 将角色分配给用户
$auth->assign('admin', 1);
$auth->assign('user', 2);
Copier après la connexion

Dans le code ci-dessus, nous avons d'abord créé Huit nouvelles autorisations sont utilisées pour contrôler les opérations CRUD pour les articles et les commentaires. Ensuite, nous avons défini deux nouveaux rôles : admin et user, et ajouté les autorisations correspondantes aux rôles. Enfin, nous attribuons le rôle d'administrateur à l'utilisateur 1 et le rôle d'utilisateur à l'utilisateur 2.

Ensuite, dans le contrôleur, nous pouvons vérifier si l'utilisateur dispose des autorisations correspondantes en appelant la méthode checkAccess et effectuer les opérations correspondantes, comme indiqué dans le code suivant :

if(Yii::app()->user->checkAccess('createArticle'))
{
    // 当前用户具有创建文章权限,进行相应操作
}

if(Yii::app()->user->checkAccess('readArticle'))
{
    // 当前用户具有读取文章权限,进行相应操作
}

if(Yii::app()->user->checkAccess('updateArticle'))
{
    // 当前用户具有更新文章权限,进行相应操作
}

if(Yii::app()->user->checkAccess('deleteArticle'))
{
    // 当前用户具有删除文章权限,进行相应操作
}

if(Yii::app()->user->checkAccess('createComment'))
{
    // 当前用户具有创建评论权限,进行相应操作
}

if(Yii::app()->user->checkAccess('readComment'))
{
    // 当前用户具有读取评论权限,进行相应操作
}

if(Yii::app()->user->checkAccess('updateComment'))
{
    // 当前用户具有更新评论权限,进行相应操作
}

if(Yii::app()->user->checkAccess('deleteComment'))
{
    // 当前用户具有删除评论权限,进行相应操作
}
Copier après la connexion

Dans le code ci-dessus, nous appelons la méthode checkAccess. Vérifiez si l'utilisateur dispose des autorisations appropriées et effectuez les actions appropriées si tel est le cas. Par exemple, lorsque l'utilisateur est autorisé à créer des articles, nous pouvons effectuer les opérations de création d'articles correspondantes.

IV. Conclusion

Grâce à l'introduction de cet article, nous pouvons voir que le framework Yii fournit un ensemble complet de mécanismes de gestion des autorisations RBAC pour contrôler les autorisations d'accès des utilisateurs au système. En définissant des rôles et en ajoutant des autorisations aux rôles, nous pouvons facilement contrôler l'accès des utilisateurs aux entités du système. Bien entendu, en plus du mécanisme de gestion des autorisations RBAC, le framework Yii fournit également de nombreuses autres fonctionnalités de sécurité, telles que le cryptage des mots de passe, la prévention de la falsification de requêtes intersites, etc., que les développeurs peuvent choisir d'utiliser en fonction de la situation réelle.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Vous avez un jeu croisé?
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Développement d'API RESTful dans le framework Yii Développement d'API RESTful dans le framework Yii Jun 21, 2023 pm 12:34 PM

Yii est un framework MVC hautes performances basé sur PHP. Il fournit un ensemble très riche d'outils et de fonctions pour prendre en charge le développement rapide et efficace d'applications Web. Parmi eux, la fonction RESTfulAPI du framework Yii a attiré de plus en plus l'attention et l'amour des développeurs, car l'utilisation du framework Yii peut facilement créer des interfaces RESTful hautes performances et facilement évolutives, offrant un support solide pour le développement d'applications Web. Introduction à RESTfulAPI RESTfulAPI est un

Comment utiliser le framework Yii en PHP Comment utiliser le framework Yii en PHP Jun 27, 2023 pm 07:00 PM

Avec le développement rapide des applications Web, le développement Web moderne est devenu une compétence importante. De nombreux frameworks et outils sont disponibles pour développer des applications web efficaces, parmi lesquels le framework Yii est très populaire. Yii est un framework PHP hautes performances basé sur des composants qui utilise les derniers modèles de conception et technologies, fournit des outils et des composants puissants et est idéal pour créer des applications Web complexes. Dans cet article, nous verrons comment utiliser le framework Yii pour créer des applications Web. Installez d'abord le framework Yii,

Middleware du framework Yii : prise en charge de plusieurs stockages de données pour les applications Middleware du framework Yii : prise en charge de plusieurs stockages de données pour les applications Jul 28, 2023 pm 12:43 PM

Middleware du framework Yii : fournir une prise en charge de plusieurs stockages de données pour les applications Introduction Le middleware (middleware) est un concept important dans le framework Yii, qui fournit une prise en charge de plusieurs stockages de données pour les applications. Le middleware agit comme un filtre, insérant du code personnalisé entre les requêtes et les réponses d'une application. Grâce au middleware, nous pouvons traiter, vérifier, filtrer les demandes, puis transmettre les résultats traités au middleware suivant ou au gestionnaire final. Le middleware du framework Yii est très simple à utiliser

Étapes pour mettre en œuvre la mise en cache des pages Web et la segmentation des pages à l'aide du framework Yii Étapes pour mettre en œuvre la mise en cache des pages Web et la segmentation des pages à l'aide du framework Yii Jul 30, 2023 am 09:22 AM

Étapes pour mettre en œuvre la mise en cache et la segmentation de pages Web à l'aide du framework Yii Introduction : Au cours du processus de développement Web, afin d'améliorer les performances et l'expérience utilisateur du site Web, il est souvent nécessaire de mettre en cache et de fragmenter la page. Le framework Yii fournit de puissantes fonctions de mise en cache et de mise en page, qui peuvent aider les développeurs à mettre en œuvre rapidement la mise en cache et la segmentation de pages Web. Cet article explique comment utiliser le framework Yii pour implémenter la mise en cache et la segmentation de pages Web. 1. Activez la mise en cache des pages Web Dans le framework Yii, la mise en cache des pages Web peut être activée via le fichier de configuration. Ouvrez le fichier de configuration principal co

Créer un site Web de guide de jeu en utilisant le framework Yii Créer un site Web de guide de jeu en utilisant le framework Yii Jun 21, 2023 pm 01:45 PM

Ces dernières années, avec le développement rapide de l'industrie du jeu, de plus en plus de joueurs ont commencé à rechercher des stratégies de jeu pour les aider à réussir. Par conséquent, la création d’un site Web de guides de jeu peut permettre aux joueurs d’obtenir plus facilement des guides de jeu, et en même temps, cela peut également offrir aux joueurs une meilleure expérience de jeu. Lors de la création d'un tel site Web, nous pouvons utiliser le framework Yii pour le développement. Le framework Yii est un framework de développement d'applications web basé sur le langage de programmation PHP. Il présente les caractéristiques d'une efficacité élevée, d'une sécurité et d'une forte évolutivité, et peut nous aider à créer un guide de jeu plus rapidement et plus efficacement.

Yii Framework Middleware : ajoutez des fonctionnalités de journalisation et de débogage à votre application Yii Framework Middleware : ajoutez des fonctionnalités de journalisation et de débogage à votre application Jul 28, 2023 pm 08:49 PM

Middleware du framework Yii : ajouter des fonctionnalités de journalisation et de débogage aux applications [Introduction] Lors du développement d'applications Web, nous devons généralement ajouter des fonctionnalités supplémentaires pour améliorer les performances et la stabilité de l'application. Le framework Yii fournit le concept de middleware qui nous permet d'effectuer certaines tâches supplémentaires avant et après que l'application traite la requête. Cet article explique comment utiliser la fonction middleware du framework Yii pour implémenter les fonctions de journalisation et de débogage. [Qu'est-ce qu'un middleware] Le middleware fait référence au traitement des demandes et des réponses avant et après que l'application traite la demande.

Comment utiliser des contrôleurs pour gérer les requêtes Ajax dans le framework Yii Comment utiliser des contrôleurs pour gérer les requêtes Ajax dans le framework Yii Jul 28, 2023 pm 07:37 PM

Dans le framework Yii, les contrôleurs jouent un rôle important dans le traitement des requêtes. En plus de gérer les requêtes de pages régulières, les contrôleurs peuvent également être utilisés pour gérer les requêtes Ajax. Cet article expliquera comment gérer les requêtes Ajax dans le framework Yii et fournira des exemples de code. Dans le framework Yii, le traitement des requêtes Ajax peut s'effectuer à travers les étapes suivantes : La première étape consiste à créer une classe contrôleur (Controller). Vous pouvez hériter de la classe de contrôleur de base yiiwebCo fournie par le framework Yii

Crypter et décrypter les données sensibles à l'aide du middleware du framework Yii Crypter et décrypter les données sensibles à l'aide du middleware du framework Yii Jul 28, 2023 pm 07:12 PM

Cryptage et déchiffrement des données sensibles à l'aide du middleware du framework Yii Introduction : Dans les applications Internet modernes, la confidentialité et la sécurité des données sont des problèmes très importants. Pour garantir que les données sensibles des utilisateurs ne soient pas accessibles à des visiteurs non autorisés, nous devons chiffrer ces données. Le framework Yii nous offre un moyen simple et efficace de mettre en œuvre les fonctions de cryptage et de décryptage des données sensibles. Dans cet article, nous expliquerons comment y parvenir en utilisant le middleware du framework Yii. Introduction au framework Yii Le framework Yii est un framework PHP hautes performances.

See all articles