Quelle est la meilleure pratique pour la sécurité de rôle pour un environnement Intratnet ASP.NET/SQL2K5?

StackOverflow https://stackoverflow.com/questions/714620

Question

Notre environnement Intranet actuel est un peu dépassée. La pile de courant a des applications ASP.NET 1.1 / 2.0 qui sont Interrogation contre une base de données SQL 2000.

Pour plus de sécurité de rôle, il y a des groupes d'utilisateurs sur les serveurs auxquels les utilisateurs sont ajoutés dans (vous devez être ajouté dans le groupe sur le test et la machine de production). Ces groupes d'utilisateurs sont synchronisés dans les rôles des utilisateurs sur SQL 2000 lui-même. Les rôles sont accordés les droits d'exécution aux procédures stockées au besoin pour prévenir toute violation d'accès.

Au niveau de l'application Web, nous utilisons l'authentification de base (qui authentifie contre notre Active Directory) et ont l'identité usurpation d'identité activée. La chaîne de connexion à la base de données utilise la sécurité intégrée. Cela crée un environnement dans lequel l'application Web se connecte à la base de données que l'utilisateur connecté qui mettra en application la sécurité des bases de données sur les procédures stockées appelé. Il nous permet également d'utiliser la méthode typique User.IsInRole () pour effectuer l'autorisation dans l'application elle-même.

Il y a plusieurs problèmes avec cela. La première est que seulement nos administrateurs de serveurs ont accès aux groupes d'utilisateurs sur la machine, mise à jour de sécurité afin de rôle, ou l'ajout d'utilisateurs supplémentaires est hors des mains des administrateurs d'application. De plus, la seule façon d'obtenir le rôle était d'appeler une procédure SQL appelée « xp_logininfo » qui est verrouillé dans SQL 2005. Bien que je ne connais pas les détails, notre DBA nous dit que ce modèle général ne joue pas agréable avec SQL 2005 compte tenu de la nature des schémas dans la nouvelle version.

Nous sommes maintenant au point que nous sommes prêts à mettre à jour notre environnement. Nous écrivons des applications .NET 3.5 pour tirer parti de plus AJAX et SQL Server 2005 est l'environnement principal de notre base de données. Nous cherchons à mettre à jour le modèle de sécurité et d'être un peu plus flexible pour les administrateurs d'applications, et tirer parti de potentiellement plus Active Directory.

L'une des préoccupations que nous avons comme il est bien qu'un utilisateur donné sera très probablement avoir accès à de multiples applications, afin d'avoir une sorte de solution centralisée est optimale afin que nous puissions facilement supprimer des utilisateurs en cas de besoin.

Ce qui est considéré comme la meilleure pratique pour maintenir la sécurité rôle dans ce genre d'environnement?

Était-ce utile?

Autres conseils

Je ne pense pas que les considérations liées aux décisions qui, lorsqu'il est fait avant a beaucoup changé.

À propos du commentaire de schéma, ceux-ci simplement vous aider à organiser les éléments de base de données, de sorte que vous pouvez attribuer des autorisations à tous dans un schéma au lieu d'avoir à configurer pour chaque procédure / table.

Les décisions en cause sur l'opportunité d'avoir l'identité flux vers le SQL Server au lieu d'utiliser le modèle de confiance sous-système, sont à peu près spécifiques au scénario particulier. Cela dit, je n'aime pas couler l'identité comme ça, parce que généralement il est encore logique étant appliquée sur l'application ce qui signifie que l'application sp sont probablement des règles partielles. En raison de cette raison, cette approche pousse aussi avoir plus de logique dans les procédures stockées.

A propos seuls les administrateurs ayant accès aux groupes d'utilisateurs dans la machine, pensez à regarder ADAM (mode d'application de répertoire actif). Je ne sais pas s'il prend en charge l'intégration avec SQL Server, donc je ne sais pas si cela va fonctionner avec cette architecture. Il vaut la peine de vérifier si.

En ce qui concerne ne pas être en mesure d'obtenir les rôles, en fonction de votre information, je suppose qu'il existe une relation étroite entre les groupes d'utilisateurs et des rôles de base de données impliqués. Vous pouvez obtenir les groupes (rôles) l'utilisateur dans le répertoire actif.

Bottom line: comment évaluer ADAM se glisse dans votre scénario, et si les considérations qui interviennent dans l'utilisation de l'approche de flux d'identité actuelle restent. De plus, ne pas oublier de considérer l'impact du projet sur la modification du flux d'identité de l'application.

Essayez de factoriser votre conception de telle sorte que votre dépôt lui-même est LDAP. Donc, essentiellement, vos utilisateurs et les rôles des objets carte des objets AD. Vous pouvez alors le contrôle complet plutôt que de passer par divers administrateurs système. Bien sûr, ce n'est pas facile en fonction de l'état de code. Mais la meilleure façon de commencer est de créer petite preuve de concept pour réaliser cette mise en correspondance de vos objets métier AD.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top