2011-07-11 1 views
3

Je travaille sur une application vb.net winforms où nous utilisons actuellement des rôles simples pour la sécurité. Nous activons/désactivons les contrôles spécifiques basés sur si l'utilisateur actuel a le rôle requis. Nous sommes au point où ce n'est plus assez granulaire.Conception d'un modèle de sécurité basé sur les autorisations

Notre application est basée sur différents emplacements physiques que nous appelons des sites. Un utilisateur peut avoir l'autorisation de faire quelque chose (par exemple, modifier la configuration d'un site) sur un site mais pas sur un autre. Par conséquent, nous devons maintenant rechercher les autorisations en fonction de l'utilisateur actuel ET du site actuel. En outre, les autorisations d'un certain utilisateur peuvent être très spécifiques à eux-mêmes. les autorisations de l'autre utilisateur sont exactement les mêmes que celles d'un autre utilisateur. Par conséquent, nous avons besoin d'un modèle de sécurité basé davantage sur les autorisations que sur les rôles.

Quelle est la meilleure façon de concevoir un nouveau modèle d'autorisations pouvant répondre à ces exigences? Je veux m'assurer qu'il est facile d'implémenter la vérification dans le code (je ne veux pas un million si les instructions sont saupoudrées dans nos méthodes SetUIPermissions) et nous ne voulons pas avoir à mettre à jour chaque utilisateur (400+ et compter) temps, nous ajoutons une nouvelle autorisation. En raison de cette dernière exigence, je pense que nous devons conserver l'idée de rôles, mais éventuellement ajouter/supprimer des exceptions pour des autorisations particulières pour des utilisateurs spécifiques.

Des idées?

Répondre

2

Vous êtes sur la bonne voie avec les rôles et les permissions. C'est une solution relativement courante d'avoir un rôle se référant à un ensemble de permissions "par défaut"; En ayant un rôle et un ensemble d'autorisations, vous autorisez le remplacement du rôle par l'ensemble des autorisations spécifiquement accordées/révoquées pour cet utilisateur. Cela donne une flexibilité et une granularité raisonnables et prend en charge votre situation d'ajout de nouvelles autorisations (dans le rôle) sans avoir besoin de toucher chaque utilisateur.

+0

C'est essentiellement ce que j'ai conçu. Nous allons garder l'idée des rôles, ajouter des permissions que chaque rôle obtient et laisser des exceptions positives et négatives pour le rôle de chaque combinaison utilisateur/site. –

Questions connexes