Partager via


Considérations sur les solutions bac à sable (sandbox)

Les solutions bac à sable (sandbox) sont une nouveauté de Microsoft SharePoint 2010 qui permettent aux utilisateurs de collections de sites de télécharger leurs propres solutions de code (composants WebPart personnalisés, par exemple).

Une application SharePoint dans une solution bac à sable est conçue pour s'exécuter dans un processus contrôlé sécurisé ayant accès à une zone limitée de la batterie de serveurs Web. Microsoft SharePoint 2010 fait appel à différentes fonctionnalités, à des galeries de solutions, à un systèmes de surveillance et à une infrastructure de validation pour activer les solutions bac à sable (sandbox).

Spécification du niveau de confiance du projet

Visual Studio prend en charge les solutions bac à sable (sandbox) via une propriété de projet booléenne appelée Sandboxed Solution. Cette propriété peut être définie à tout moment ou spécifiée au moment de la création du projet dans l'Assistant Personnalisation de SharePoint.

Notes

La modification de la propriété Sandboxed Solution d'un projet à l'issue de sa création risque de provoquer des erreurs de validation.

Si la propriété Sandboxed Solution a la valeur false ou si vous sélectionnez l'option Déployer en tant que solution de batterie, la solution est considérée comme une solution de batterie. Toutefois, si la propriété Sandboxed Solution a la valeur true ou si vous sélectionnez l'option Déployer en tant que solution bac à sable (sandbox) dans l'Assistant, la solution n'est pas traitée de la même manière qu'une solution de batterie.

Hiérarchie des sites SharePoint

Pour comprendre le mode de fonctionnement des solutions bac à sable (sandbox), il est important de savoir que les sites SharePoint sont organisés de façon hiérarchique. L'élément supérieur correspond à la batterie de serveurs Web. Tous Les 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 regrouper une ou plusieurs collections de sites composées elles-mêmes de sous-sites, et ainsi de suite. Les modifications apportées à une collection de sites concernent exclusivement cette collection de sites. Toutefois, les changements effectués au niveau de la batterie de serveurs Web affectent toutes les collections de sites de la batterie.

Windows SharePoint Services 3.0 (WSS) est prévu pour déployer des solutions uniquement au niveau de la batterie, à la différence de Microsoft SharePoint Foundation 2010 qui assure le déploiement au niveau de la batterie (solution de batterie) ou de la collection de sites (solution bac à sable (sandbox)).

Intérêt des solutions bac à sable (sandbox)

Dans WSS 3.0, les solutions ne pouvaient être déployées qu'au niveau de la batterie. Il était donc possible de déployer des solutions potentiellement dangereuses ou présentant des risques d'instabilité susceptibles de perturber le fonctionnement de la totalité de la batterie de serveurs Web et de l'ensemble des collections de sites et des applications sous-jacentes. Or, l'intérêt des solutions bac à sable est de limiter le déploiement de vos solutions à une sous-zone de la batterie de services ou à une collection de sites spécifique. Pour assurer une protection supplémentaire, l'assembly de la solution n'est pas chargé dans le processus IIS principal (w3wp.exe). À la place, il est chargé dans un processus distinct (SPUCWorkerProcess.exe). Ce processus est surveillé et met en œuvre des quotas et des limitations pour protéger la batterie contre les solutions bac à sable qui procèdent à des activités malveillantes, telles que l'exécution de boucles serrées qui consomment beaucoup de cycles microprocesseurs.

Galerie des solutions de collection de sites

Windows SharePoint Services 2010 offre une fonction appelée « galerie des solutions de collection de sites » à laquelle vous accédez en cliquant successivement sur Actions du site, Paramètres du site, ** Galeries** et Solutions sur le site SharePoint, ou à partir de la page Administration centrale de SharePoint 2010. Les galeries de solutions sont en quelque sorte 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 sur le site Web racine du site SharePoint. Elle remplace les modèles de site et prend en charge les packages de solution. Lorsqu'un fichier de package de solution SharePoint (.wsp) est téléchargé, il est traité comme une solution bac à sable (sandbox).

Limitations des solutions bac à sable (sandbox)

Lorsqu'une solution bac à sable (sandbox) est déployée, l'étendue des fonctionnalités SharePoint mises à sa disposition est limitée pour réduire les risques de vulnérabilité. Voici quelques-unes des limitations prévues :

  • Les solutions bac à sable (sandbox) ont accès à un sous-ensemble restreint d'éléments de solution déployables. Les modèles de projet SharePoint potentiellement vulnérables, tels que les définitions de site et les flux de travail, ne sont pas disponibles.

  • SharePoint exécute le code de la solution bac à sable (sandbox) dans un processus (SPUCWorkerProcess.exe) indépendant du processus de pool d'applications (w3wp.exe) IIS principal.

  • Les dossiers mappés ne peuvent pas être ajoutés au projet.

  • Les types de l'assembly Microsoft SharePoint Server 2010 Microsoft.Office.Server ne peuvent pas être utilisés dans les solutions bac à sable (sandbox). De plus, seuls les types de l'assembly Microsoft SharePoint Foundation 2010 Microsoft.SharePoint peuvent être utilisés dans les solutions bac à sable (sandbox).

Il est important de savoir que le fait de spécifier une solution SharePoint en tant que solution bac à sable (sandbox) n'a aucune incidence sur le serveur SharePoint. Cela change uniquement la façon dont le projet SharePoint est déployé sur SharePoint à partir de Visual Studio et détermine les assemblys auxquels il est lié. Cela n'a aucun impact sur le fichier .wsp généré et le fichier .wsp ne comporte aucune donnée ayant un lien direct avec la propriété Sandboxed Solution.

Spécifications des solutions bac à sable (sandbox)

Les solutions bac à sable (sandbox) prennent en charge les spécifications suivantes :

  • Définitions de listes

  • Instances de listes

  • Onet.xml

  • Éléments de fonctionnalité WebTemplate (au lieu de Webtemp.xml)

  • Types de contenu/Champs

  • Navigation

  • Module/Fichiers

  • Légendes des fonctionnalités

  • WebParts

  • Prise en charge de tous les composants WebPart dérivés de System.Web.UI.WebControls.WebParts.WebPart

  • Récepteurs d'événements

  • SPItemEventReceiver

  • SPListEventReceiver

  • SPWebEventReceiver

  • Actions personnalisées

  • Flux de travail déclaratifs

Les solutions bac à sable (sandbox) ne prennent pas en charge les spécifications suivantes :

  • Composants Visual WebPart

  • Pages d'applications

  • Groupe d'actions personnalisées

  • Élément HideCustomAction

  • Liaison du type de contenu

  • Fonctionnalités relatives aux applications Web

  • Fonctionnalités relatives aux batteries

  • Flux de travail avec code

Voir aussi

Autres ressources

Différences entre les solutions bac à sable (sandbox) et les solutions de batterie

Développement de solutions SharePoint