2008-09-16 9 views
-1

Je suis en train de concevoir l'architecture de sécurité d'un portail. Le site contient des pages, des vidéos, des images, des utilisateurs, des bases de données, des objets de système de fichiers, etc. Quel est le meilleur moyen de contrôler l'accès à tous ces objets? Comment voulez-vous stocker les autorisations? Une variable de base de données 64 bits est-elle suffisante pour stocker les autorisations?Quelle est la meilleure façon de créer une architecture de sécurité?

E.g. Windows utilise ACLs et SIDs. Avez-vous une solution plus à jour?

Répondre

1

Je n'aime pas l'idée de stocker les permissions comme des drapeaux dans une variable. Je préfère faire des rôles d'objets en relation plusieurs-à-plusieurs avec les utilisateurs.

Pour les droits de modification de l'objet spécifique, j'utilise la méthode ou la fonction externe d'un objet en fonction de la manière dont je peux généraliser les politiques de sécurité.

Pour les portails de taille moyenne, cette approche fonctionne très bien.

0

La plupart des infrastructures Web communes ont des systèmes de sécurité intégrés. ASP.NET, par exemple, a un sous-système de sécurité assez robuste. La sécurité est très difficile à obtenir, c'est donc presque toujours le cas que vous allez vouloir utiliser un système qui est testé régulièrement. Si vous devez absolument écrire votre propre système de sécurité, je vous suggérerais de rechercher les différentes technologies comme ACL, LDAP en tant qu'utilisateur, les groupes, l'usurpation d'identité sont tous des sujets compliqués et doivent être recherchés afin d'obtenir la meilleure correspondance possible. besoins réels.

0

Quoi que vous fassiez, faites-le simple. Plus facile à fabriquer, plus facile à prouver, plus facile à vérifier. Plus facile à adapter.

D'abord, considérons un système de groupe/utilisateur. Pour chaque objet définir un ensemble d'autorisations, puis connectez-vous - cet utilisateur a ces autorisations, ce groupe a ces autorisations, etc.

Si cela ne suffit pas pour vous (assurez-vous qu'il est vraiment pas assez), l'utilisation une sorte de système ACL, de préférence intégré à votre solution existante, et de préférence aussi simple que possible.

0

Je prévois de suivre Modèle de conception de sécurité de contrôle d'accès basé sur les rôles (Security Patterns: Integrating Security and Systems Engineering, p249). Le rôle a une association avec ProtectionObject. Le nom de l'association est IsAuthorised for. Il existe une classe d'association appelée Right qui a un membre accessType et une méthode checkRights. Le rôle est dans l'association plusieurs-à-plusieurs avec l'utilisateur. Le nom de l'association est MemberOf. Cette structure peut représenter les rôles, les utilisateurs et la vérification des autorisations.

La question principale pour moi est comment stocker les autorisations par objet. Disons que nous avons des pages, des webparts, des objets du système de fichiers. Je peux stocker des autorisations pour ces objets dans la base de données. Cette méthode permet également de contrôler les objets système et les objets du système de fichiers. C'est une grande question pour moi comment stocker et mettre en cache ces ensembles d'autorisations dans la mémoire et comment vérifier l'accès efficacement.

+0

Je pense que vous devriez inclure ceci dans votre question ... – KovBal

Questions connexes