Sécurisation de l'hébergement et de la persistance

Le magasin de persistance est une composante essentielle de l'architecture de Microsoft AppFabric 1.1 pour Windows Server. Ce magasin prend en charge la durabilité des instances Windows Workflow Foundation (WF) au travers des différents états d'exécution. Vous pouvez manipuler les instances de service de flux de travail persistantes à l'aide des outils d'administration dans AppFabric. Vous devez fournir des autorisations de lecture et d'écriture sur le magasin de persistance aux utilisateurs de AppFabric qui exécutent les outils d'administration, ainsi qu'aux applications au moment de l'exécution. Vous devez également contrôler l'accès au magasin de persistance, sur les étendues de l'application et de la gestion.

L'hébergement d'une application constitue une considération de sécurité importante. L'isolation des applications empêche l'accès aux données ou leur affichage par d'autres applications. Par ailleurs, le contrôle de l'identité de l'application pour un accès en aval aux ressources est un élément important du modèle de sécurité de AppFabric. Cette identité affecte le principal de sécurité que l'application utilise lorsqu'elle tente d'accéder au magasin de persistance.

L'hébergement et la persistance relèvent des étendues de l'application et de la gestion, et doivent être sécurisés au sein de chaque domaine. Des autorisations spécifiques sont nécessaires en raison de l'inclusion dans divers groupes de sécurité. L'étendue de la sécurité de l'application affecte les autorisations associées à une application au moment de l'exécution, et mappe au rôle conceptuel Utilisateurs de serveur d'applications. L'étendue de la sécurité de la gestion affecte les outils et opérations associées qu'un administrateur ou des services système peuvent exécuter. Ces autorisations mappent aux rôles conceptuels Administrateurs de serveur d'applications et Opérateurs de serveur d'applications.

Sécurisation des données de persistance

Lorsqu'une instance d'un service est rendue persistante, l'état de son système est enregistré dans le magasin de persistance. Les applications collectent et transmettent régulièrement des informations d'identification personnelle et d'autres données confidentielles. Lorsque ces données sont incluses dans l'état de l'application alors qu'un service est rendu persistant, elles ont enregistrées dans le magasin de persistance. Plusieurs serveurs, sites et applications peuvent partager un même magasin de surveillance. Par défaut, les données de persistance des serveurs et sites qui partagent un magasin sont agrégées pour faciliter la gestion de l'état d'activité de milliers d'instances potentielles d'un service dans un environnement volumineux. Ceci permet à une instance d'un service d'être rendue persistante tandis qu'elle est exécutée sur un serveur AppFabric, puis reprise sur un autre serveur en fonction du critère d'équilibrage de la charge.

Une fois les données stockées dans le magasin de persistance, les membres du rôle de base de données AS_Administrators et les membres des rôles sysadmin et dbo de SQL Server peuvent les consulter. Les données de persistance étant vulnérables à une exposition accidentelle ou ciblée, vous devez veiller à réduire ce risque en gérant les autorisations correctement.

Diverses méthodes permettent de sécuriser les données du magasin de persistance :

  • Utiliser différents magasins de persistance. Vous pouvez créer et configurer un autre magasin de persistance sur le même serveur ou un autre serveur à l'aide des cmdlets de AppFabric pour créer le magasin, et de la page Configuration de la base de données de persistance de AppFabric pour le configurer. Vous pouvez ensuite configurer certaines applications pour utiliser ce magasin uniquement. Celles-ci disposent ainsi d'un magasin de données de persistance privé auquel aucune autre application ne peut accéder.

  • Séparer les magasins de persistance et de surveillance. Par défaut, la table et les entités des magasins de persistance et de surveillance sont créées dans le magasin DefaultApplicationServerExtensions lors de l'installation. Vous pouvez consacrer un magasin à la persistance et un autre magasin à la surveillance. Ceci empêche les applications et les utilisateurs sur les étendues de gestion et d'application d'accéder à un seul magasin double et de ce fait, à toutes les tables relatives à la persistance et à la surveillance.

  • Utiliser les groupes Windows et les rôles SQL Server. L'accès à un magasin de persistance SQL Server est implémenté via les rôles de base de données SQL Server. Lors de l'initialisation d'un magasin d'instances, l'administrateur peut insérer des groupes Windows dans les rôles SQL Utilisateurs de magasin d'instances, Lecteurs de magasin d'instances et Administrateurs de magasin d'instances. Pour plus d'informations sur la sécurisation des données dans les magasins de persistance à l'aide des groupes Windows et des rôles SQL Server, consultez la rubrique Configuration de la sécurité pour les magasins de persistance.

  • Utiliser les fonctionnalités de persistance. Vous pouvez utiliser les extensions ajoutées au Gestionnaire des services Internet par AppFabric pour activer et désactiver les fonctionnalités de persistance pour un service de flux de travail spécifique, pour tous les services de flux de travail d'une application, pour toutes les applications d'un site Web ou tous les sites Web d'un serveur. Vous pouvez définir une stratégie de persistance à un niveau supérieur, et configurer les niveaux inférieurs de la hiérarchie IIS et WAS pour qu'ils héritent des paramètres de la stratégie.

  • Utiliser différentes identités de pool d'applications. En utilisant différentes identités pour les pools d'applications IIS, vous pouvez restreindre ou étendre les autorisations SQL Server pour le magasin de persistance entier ou les entités individuelles qui s'y trouvent. Cette technique de sécurité précise, exécutée aux niveaux IIS et SQL Server, n'est pas directement prise en charge par les outils de AppFabric.

Sécurisation de l'hébergement

L'isolation des processus permet de séparer les services à privilèges élevés sur l'étendue de gestion de AppFabric (tels que le service de collecte d'événements ; et le Service de gestion du flux de travail) des processus de travail à faibles privilèges sur l'étendue d'application. Les services AppFabric sont exécutés sur l'étendue de gestion et disposent d'un accès complet à leurs magasins de surveillance et de persistance respectifs. Les processus de travail et utilisateurs d'une application sont exécutés sur l'étendue de l'application, généralement dans le contexte de l'identité d'un pool d'applications.

Sur l'étendue de l'application, une isolation accrue de l'hébergement offre une vue plus granulaire de la sécurité. Une application contient un ou plusieurs services .NET Framework exécutés dans le même processus. Pour sécuriser ces services .NET Framework individuellement, ceux-ci peuvent être exécutés dans le contexte d'AppDomains différents. Un processus .NET Framework contient un ou plusieurs AppDomains .NET Framework (environnements isolés dans lesquels des applications sont exécutées). Dans un pool d'applications IIS, il peut y avoir une ou plusieurs applications exécutées simultanément si celles-ci sont configurées pour partager un pool d'applications. Les AppDomains permettent d'isoler l'exécution sans provoquer la surcharge d'un autre processus avec ses ressources.

Si vous avez besoin d'une solution d'hébergement plus isolée, configurez chaque application pour être exécutée dans son propre pool d'applications avec sa propre identité. Ceci permet de donner différentes identités aux applications lorsque celles-ci accèdent au magasin de persistance. IIS place toutes ces identités dans le groupe de sécurité Windows IIS_IUSRS au moment de l'exécution. Du point de vue de la sécurité, l'exécution dans un espace de processus distinct est semblable à l'exécution dans un domaine d'application distinct, dans le sens où aucune autre application ne peut accéder au code ou aux données d'une application spécifique. Tenez compte du fait que les processus supplémentaires entraînent la surcharge d'autres ressources du système d'exploitation et un basculement de contexte sur le processeur, car chaque processus mobilise une part spécifique du processeur.

  2012-03-05