Choix de l’emplacement d’application de la sécurité
Les compromis sont inhérents à l’application de la sécurité. Une base de données peut être un endroit naturel pour mettre en place une logique de sécurité, étant donné qu’en fin de compte, ces données sont la chose la plus importante à protéger. Toutefois, cela a des implications importantes sur les performances. L’application de la sécurité au niveau de la base de données peut être très coûteuse, elle est mal mise à l’échelle et est inflexible.
Application de la sécurité dans le niveau intermédiaire
La règle générale à suivre avec les applications multiniveau évolutives utilisant COM+ est que, dans la mesure du possible, vous devez appliquer une sécurité détaillée dans l’application COM+ au niveau intermédiaire. Cela vous permet de tirer pleinement parti des services évolutifs fournis par COM+. Appliquez l’authentification au niveau de la base de données uniquement lorsque vous en avez absolument besoin et évaluez entièrement les implications en matière de performances de cette opération.
La situation optimale est de pouvoir sécuriser les tables de base de données afin que l’application COM+ puisse y accéder sous sa propre identité. La base de données doit simplement authentifier l’application COM+ et lui faire confiance pour authentifier et autoriser correctement les clients qui accèdent aux données. Les avantages de cette approche sont les suivants :
- Il permet le regroupement des connexions entre tous les clients, car les connexions sont complètement génériques.
- Il optimise généralement l’accès aux données, souvent un point d’étranglement problématique lors de la mise à l’échelle des applications.
- Il peut réduire la surcharge logique pour l’application de la sécurité, en particulier si la sécurité déclarative basée sur les rôles peut être utilisée.
- Il peut offrir une grande flexibilité dans une stratégie de sécurité. Vous pouvez le configurer et le reconfigurer facilement, comme décrit dans Administration de la sécurité basée sur le rôle.
Toutefois, comme indiqué dans Conception efficace des rôles, bien que les rôles puissent être facilement et efficacement appliqués à certaines relations de données utilisateur, ils ne constituent pas une solution universelle pour les décisions d’accès de sécurité.
Application de la sécurité au niveau de la base de données
Bien qu’il soit préférable d’appliquer la sécurité au niveau intermédiaire, il existe plusieurs raisons d’appliquer la sécurité au niveau de la base de données, par exemple :
- Vous n’avez pas le choix, peut-être pour des raisons héritées ou peut-être parce que la décision n’est tout simplement pas entre vos mains.
- Une grande variété d’applications accèdent à la base de données, et sa sécurité ne peut pas être configurée sur la base d’une seule application.
- Une base de données peut être protégée de manière prévisible. Si vous conservez des données critiques pour l’entreprise dans une base de données, vous pouvez dessiner un chariot serré autour d’elles et aider à contrôler qui les voit.
- L’authentification des clients d’origine dans la base de données permet une journalisation détaillée de qui a fait quoi dans la base de données.
- Certaines données sont liées de manière innée à des utilisateurs particuliers, et la logique de prise de décisions d’accès extrêmement affinées peut être effectuée plus efficacement dans la base de données elle-même, à proximité des données.
Lorsque vous avez le luxe de concevoir la sécurité de la base de données et de l’application COM+ en tandem, la plupart de ces problèmes concernent les caractéristiques des données elles-mêmes et leur relation avec les utilisateurs qui y accèdent. Avec des données accessibles aux catégories prévisibles d’utilisateurs, il est efficace de contrôler l’accès au niveau intermédiaire à l’aide de rôles. Avec des données qui sont étroitement liées à de très petites classes d’utilisateurs, ces relations doivent souvent être exprimées avec les données elles-mêmes et, par conséquent, vous devez appliquer une certaine sécurité au niveau de la base de données.
Incidences sur les performances de l’application de la sécurité sur la base de données
Si vous authentifiez ou autorisez des utilisateurs sur la base de données, l’identité de l’utilisateur doit être propagée à la base de données pour prendre en charge cette opération. Si la base de données approuve l’application de niveau intermédiaire pour ce faire, il est possible de transmettre les informations de sécurité utilisateur dans les paramètres. Sinon, l’appel à la base de données doit être effectué sous l’identité de l’utilisateur, ce qui signifie que l’application serveur doit emprunter l’identité du client. Cela peut avoir des conséquences sur les performances telles que les suivantes :
- L’emprunt d’identité du client peut être beaucoup plus lent que d’effectuer l’appel directement sous l’identité de l’application. Pour plus d’informations, consultez Emprunt d’identité et délégation de client.
- Une connexion de base de données effectuée sous une identité d’utilisateur spécifique ne peut pas être mise en pool.
- L’ajout de logique dans la base de données elle-même risque de créer un goulot d’étranglement de mise à l’échelle.
Rubriques connexes