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, pour la sécurité, les navigateurs n’autorisent pas JavaScript hébergé sur un domaine à accéder aux ressources d’un autre domaine. Par conséquent, une technique spéciale est requise pour permettre au JavaScript distant d’accéder aux ressources SharePoint. La bibliothèque JavaScript inter-domaines SharePoint facilite l’utilisation de la technique par votre application web distante.
Notes
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, qui se trouve dans le dossier virtuel /_layouts/15/ de chaque site web SharePoint. Les scripts de ce fichier encapsulent une technique bien connue sécurisée pour contourner la restriction du navigateur sur les scripts inter-domaines : un iFrame peut communiquer avec sa page parente à l’aide de la fonction window.postMessage() , même si la page dans l’iFrame se trouve dans un autre domaine. Par conséquent, les demandes de données et les réponses sont transmises au-dessus de la limite du 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-domaines est chargée sur une page de l’application web distante où elle crée un iFrame masqué qui héberge une page proxy spéciale à partir du domaine SharePoint. La page proxy existe déjà sur chaque site 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 transmis à 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 du complément sur RemoteWebApplication (valeur 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>
Notes
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
- Accéder à des données SharePoint à partir de compléments à l’aide de la bibliothèque inter-domaines
- Utiliser la bibliothèque inter-domaines dans différentes zones de sécurité Internet Explorer dans les compléments pour SharePoint
- Résoudre les problèmes inter-domaines dans les compléments SharePoint (billet de blog)
- Autorisation et authentification des compléments dans SharePoint