Partager via


Création de compléments SharePoint qui utilisent la bibliothèque inter-domaines

Il existe quelques scénarios dans lesquels ni les systèmes d’autorisation de haut niveau de fiabilité ni ceux à faible niveau de confiance ne peuvent être utilisés par un complément SharePoint, ou bien ce choix n’est pas approprié, car c’est le seul moyen pour le complément d’obtenir une autorisation pour les ressources SharePoint.

Exemples :

  • Les composants distants du complément SharePoint ne sont pas locaux, mais un pare-feu d’entreprise bloque la communication de serveur à serveur entre SharePoint et ACS, empêchant ainsi l’utilisation du système d’autorisation à faible niveau de fiabilité.

  • Le complément SharePoint est conçu comme une application web à une seule page qui repose sur JavaScript côté client pour les opérations de données avec SharePoint.

  • Le Complément SharePoint repose principalement sur les appels de serveur à serveur pour accéder aux données SharePoint (et est autorisé par les systèmes à faible niveau de fiabilité ou à haut niveau de fiabilité), mais il doit être complété par des appels JavaScript. Par exemple, une page riche en graphiques peut utiliser JavaScript pour effectuer des mises à jour mineures au niveau des données affichées sans avoir à recharger la page entière.

Toutefois, par sécurité, les navigateurs n’autorisent pas un JavaScript hébergé sur un domaine à accéder aux ressources sur un autre domaine. Une technique spéciale est donc requise pour autoriser le JavaScript à distance à accéder aux ressources SharePoint. La bibliothèque JavaScript inter-domaine SharePoint permet à votre application web à distance d’utiliser facilement cette technique.

Remarque

La bibliothèque inter-domaines est également utilisée pour autoriser l’accès aux données dans le sens inverse, autrement dit pour autoriser JavaScript sur une page SharePoint à accéder aux données dans un domaine à distance. Pour plus d’informations, reportez-vous à la rubrique Accès aux données à distance à partir d’une page SharePoint.

Comprendre l’architecture de la bibliothèque inter-domaines

La bibliothèque inter-domaines SharePoint est contenue dans le fichier SP. RequestExecutor.js, situé dans le dossier virtuel /_layouts/15/ de chaque site web SharePoint. Les scripts de ce fichier encapsulent une technique sécurisée bien connue permettant d’ignorer les restrictions des navigateurs sur l’écriture de scripts inter-domaines : un iFrame peut communiquer avec sa page parent au moyen de la fonction window.postMessage(), même si la page de l’iFrame se trouve dans un autre domaine. Par conséquent, les demandes et les réponses de données sont transmises au-delà de la limite de domaine, à l’aide d’appels à postMessage().

Avertissement

La fonction postMessage() ne donne de résultats que sur les navigateurs prenant en charge HTML 5. Par conséquent, les compléments SharePoint qui utilisent la bibliothèque inter-domaines ne fonctionnent pas sur les navigateurs plus anciens.

Pour SharePoint, la bibliothèque inter-domaine est chargée sur une page de l’application web à distance où elle crée un iFrame caché qui héberge une page proxy spéciale à partir du domaine SharePoint. La page proxy existe déjà sur tous les sites web SharePoint.

La bibliothèque est utilisée pour créer un objet JavaScript Object Notation (JSON) qui contient toutes les informations nécessaires pour effectuer un appel CRUD vers l'API REST de SharePoint. L’objet JSON est passé à la page proxy à l’aide de postMessage(). Sur la page proxy, où la bibliothèque est également chargée, l'objet JSON est analysé et recréé en tant qu'appel REST vers SharePoint. Étant donné que la page proxy se trouve dans le domaine SharePoint, le navigateur autorise l’appel.

Évidemment, les composants distants du Complément SharePoint doivent encore disposer d'une autorisation d'accès aux ressources SharePoint. Pour ce faire, deux méthodes sont possibles :

  • Définissez le type de principal de complément sur RemoteWebApplication (par défaut pour les applications hébergées par un fournisseur) dans le manifeste de complément. Si le complément est inscrit dans le service ACS, l’inscription contient le domaine de l’application web à distance. SharePoint approuve les domaines qui sont inscrits auprès d’ACS, même si dans ce scénario il n’utilise aucun des flux de transmission de flux faisant partie du système à faible niveau de confiance côté serveur. Pour plus d’informations sur l’inscription des compléments, reportez-vous à la rubrique Enregistrement des compléments SharePoint.

  • Dans un complément hébergé par SharePoint, vous pouvez laisser le type de principal de complément sur sa valeur par défaut, à savoir Internal. Vous pouvez ensuite définir l’attribut AllowedRemoteHostUrl de l’élément Internal sur l’URL de l’application web distante, comme dans l’exemple suivant.

  <AppPrincipal>
    <Internal AllowedRemoteHostUrl="https://example.com/Home.html" />
  </AppPrincipal>

Remarque

Si vous utilisez la deuxième option (un principal de complément Internal), vous pouvez utiliser uniquement JavaScript et la bibliothèque inter-domaines pour accéder à SharePoint. Le modèle objet client SharePoint est bloqué pour les compléments SharePoint internes, afin qu’il ne puisse pas exister de système d’autorisation double qui utiliserait à la fois la bibliothèque inter-domaines et l’un des systèmes à niveau de confiance faible ou élevé.

Pour plus d’informations sur l’utilisation de la bibliothèque, reportez-vous à la rubrique Accéder à des données SharePoint à partir de compléments à l’aide de la bibliothèque inter-domaines.

Accéder aux données distantes à partir d’une page SharePoint

La bibliothèque inter-domaines SharePoint peut également être utilisée dans le sens inverse. Autrement dit, un code JavaScript sur une page SharePoint peut l’utiliser pour obtenir des données à partir des composants distants du complément. Pour ce faire, il faut inverser l’architecture inter-domaines : vous créez une page de proxy dans l’application web distante. La bibliothèque est appelée à partir d’une page SharePoint, dans laquelle elle crée un iFrame pour héberger la page de proxy.

Pour plus d’informations sur cette utilisation de la bibliothèque, reportez-vous à la rubrique Créer une page de proxy personnalisée pour la bibliothèque inter-domaines dans SharePoint.

Voir aussi