Considérations sur les solutions bac à sable (sandbox)
Les solutions bac à sable sont une fonctionnalité de Microsoft SharePoint 2010 qui permet aux utilisateurs de collection de sites de charger leurs propres solutions de code personnalisées. Une solution bac à sable (sandbox) courante est quand les utilisateurs chargent leurs propres composants WebPart.
Une application SharePoint bac à sable (sandbox) s’exécute dans un processus sécurisé et supervisé qui a accès à une partie limitée de la batterie de serveurs web. Microsoft SharePoint 2010 utilise une combinaison de fonctionnalités, de galeries de solutions, de supervision des solutions et d’infrastructure de validation pour activer les solutions bac à sable (sandbox).
Spécifier le niveau de confiance du projet
Visual Studio prend en charge les solutions bac à sable via une propriété de projet booléenne appelée Solution bac à sable (sandbox). Cette propriété peut être définie à tout moment dans le projet, ou elle peut être spécifiée lorsque vous créez le projet dans l’Assistant Personnalisation de SharePoint.
Notes
La modification de la propriété Solution bac à sable d’un projet après sa création peut entraîner des erreurs de validation.
La solution est considérée comme une solution à l’étendue de la batterie de serveurs si la propriété Solution bac à sable a la valeur false ou si vous choisissez l’option Déployer en tant que solution de batterie de serveurs. Toutefois, la solution est traitée différemment d’une solution de batterie de serveurs si la propriété Solution bac à sable a la valeur true ou si vous choisissez l’option Déployer en tant que solution bac à sable (sandbox) dans l’Assistant.
Hiérarchie de site SharePoint
Pour comprendre le fonctionnement des solutions bac à sable (sandbox), il est utile de savoir que les sites SharePoint sont hiérarchiques dans l’étendue. L’élément supérieur est connu sous le nom de batterie de serveurs web, et d’autres éléments lui sont subordonnés :
Batterie de serveurs web
Application web A
Collection de sites A1
Site A1a
Application web B
Collection de sites B1
Site B1a
Site B1b
Collection de sites B2
Site B2a
Comme vous pouvez le voir, les batteries de serveurs web peuvent contenir une ou plusieurs applications web, qui à leur tour peuvent contenir une ou plusieurs collections de sites, qui peuvent avoir des sous-sites, etc. Les modifications apportées à une collection de sites affectent uniquement cette collection de sites, et aucune autre. Toutefois, les modifications apportées au niveau de la batterie de serveurs web affectent toutes les collections de sites sur la batterie de serveurs.
Windows SharePoint Services (WSS) 3.0 vous permet de déployer des solutions uniquement au niveau de la batterie de serveurs, mais Microsoft SharePoint Foundation vous permet de déployer au niveau de la batterie de serveurs (solution de batterie de serveurs) ou au niveau de la collection de sites (solution bac à sable).
Pourquoi des solutions bac à sable (sandbox) ?
Dans WSS 3.0, les solutions pouvaient être déployées uniquement au niveau de la batterie de serveurs. Cela signifiait que des solutions potentiellement dangereuses ou déstabilisatrices pouvaient être déployées et affectaient l’ensemble de la batterie de serveurs web et toutes les autres collections de sites et applications s’exécutant sous celle-ci. Toutefois, en utilisant des solutions bac à sable (sandbox), vous pouvez déployer vos solutions dans une sous-zone de la batterie de serveurs, une collection de sites spécifique. Pour fournir une protection supplémentaire, l’assembly de la solution n’est pas chargé dans le processus IIS principal (w3wp.exe). Au lieu de cela, il est chargé dans un processus distinct (SPUCWorkerProcess.exe). Ce processus est surveillé et implémente des quotas et des limitations pour protéger la batterie de serveurs contre les solutions bac à sable (sandbox) qui effectuent des activités dangereuses, comme l’exécution de boucles serrées qui consomment des cycles de processeur.
Galerie des solutions de collection de sites
Windows SharePoint Services 2010 dispose d’une fonctionnalité appelée « Galerie des solutions de collection de sites ». Vous pouvez accéder à cette fonctionnalité à partir de la page Administration centrale de SharePoint 2010 ou en ouvrant le menu Actions du site, en choisissant Paramètres du site, puis le lien Solutions sous Galeries dans le site SharePoint. Les galeries de solutions sont des référentiels de solutions qui permettent aux administrateurs de collections de sites de gérer des solutions dans leurs collections de sites.
La galerie de solutions est une bibliothèque de documents stockée dans le site web racine du site SharePoint. La galerie de solutions remplace les modèles de site et prend en charge les packages de solution. Lorsqu’un fichier de package de solution SharePoint (.wsp) est chargé, il est traité en tant que solution bac à sable (sandbox).
Limitations des solutions bac à sable (sandbox)
Lorsqu’une solution en bac à sable (sandbox) est déployée, le tableau des fonctionnalités SharePoint disponibles est limité pour aider à réduire les failles de sécurité qu’elle peut avoir. Voici quelques-unes de ces limitations :
Les solutions bac à sable disposent d’un sous-ensemble restreint d’éléments de solution déployables. Les modèles de projet SharePoint potentiellement vulnérables, comme les définitions de site et les workflows, ne sont pas disponibles.
SharePoint exécute le code de solution bac à sable (sandbox) dans un processus (SPUCWorkerProcess.exe) distinct du processus principal du pool d’applications IIS (w3wp.exe).
Les dossiers mappés ne peuvent pas être ajoutés au projet.
Les types dans l’assembly Microsoft SharePoint Server Microsoft.Office.Server ne peuvent pas être utilisés dans les solutions bac à sable (sandbox). En outre, seuls les types de l’assembly Microsoft SharePoint Foundation Microsoft.SharePoint peuvent être utilisés dans des solutions bac à sable (sandbox).
Il est important de noter que la spécification d’une solution SharePoint en tant que solution bac à sable (sandbox) n’a aucun impact sur le serveur SharePoint ; elle détermine uniquement comment le projet SharePoint est déployé sur SharePoint à partir de Visual Studio et les assemblys auxquels il est lié. Cela n’affecte pas le fichier .wsp généré, et le fichier .wsp n’a aucune donnée directement corrélée à la propriété Solution bac à sable.
Fonctionnalités et éléments dans les solutions bac à sable (sandbox)
Les solutions bac à sable (sandbox) prennent en charge les fonctionnalités et éléments suivants :
Types/champs de contenu
Actions personnalisées
Workflows déclaratifs
Récepteurs d’événements
Légendes des fonctionnalités
Liste des définitions
Instances de listes
Module/fichiers
Navigation
Onet.xml
SPItemEventReceiver
SPListEventReceiver
SPWebEventReceiver
Prise en charge de tous les composants WebPart qui dérivent de
System.Web.UI.WebControls.WebParts.WebPart
composants WebPart
Éléments de fonctionnalité WebTemplate (au lieu de Webtemp.xml)
Composants visuels WebPart
Les solutions bac à sable (sandbox) ne prennent pas en charge les fonctionnalités et éléments suivants :
Pages d’application
Groupes d’actions personnalisées
Fonctionnalités étendues à la batterie de serveurs
HideCustomAction
, élémentFonctionnalités étendues à l’application web
Workflows avec code