Erstellen von SharePoint-Add-Ins, die die domänenübergreifende Bibliothek verwenden

Es gibt einige Szenarios, in denen weder das Autorisierungssystem mit niedriger Vertrauensebene noch das besonders vertrauenswürdige Autorisierungssystem von einem SharePoint-Add-In verwendet werden kann oder sie keine gute Wahl als einzige Methode sind, mit der das Add-In die Autorisierung für SharePoint-Ressourcen erhält.

Beispiele:

  • Die Remotekomponenten des SharePoint-Add-Ins sind nicht lokal vorhanden, eine Unternehmensfirewall blockiert jedoch die Server-zu-Server-Kommunikation zwischen SharePoint und ACS, sodass das System mit niedriger Vertrauensebene nicht verwendet werden kann.

  • Das SharePoint-Add-In ist als einseitige Webanwendung ausgelegt, die für Datenvorgänge mit SharePoint clientseitiges JavaScript verwendet.

  • Das SharePoint-Add-In basiert hauptsächlich auf Server-zu-Server-Aufrufen, um auf SharePoint-Daten zuzugreifen (und ist vom System mit niedriger Vertrauensebene oder vom besonders vertrauenswürdigen System autorisiert), es muss jedoch durch einige JavaScript-Aufrufe ergänzt werden. Eine zum Großteil aus Grafiken bestehende Seite kann beispielsweise JavaScript verwenden, um kleinere Aktualisierungen an den angezeigten Daten vorzunehmen, ohne die komplette Seite neu laden zu müssen.

Aus Sicherheitsgründen erlauben Browser jedoch nicht, dass JavaScript, das in einer Domäne gehostet wird, auf Ressourcen in einer anderen Domäne zugreifen kann. Daher ist eine spezielle Technik erforderlich, um dem Remote-JavaScript den Zugriff auf SharePoint-Ressourcen zu ermöglichen. Mit der SharePoint domänenübergreifenden JavaScript-Bibliothek wird die Verwendung des Verfahrens durch Ihre Remotewebanwendung erleichtert.

Hinweis

Die domänenübergreifende Bibliothek wird auch verwendet, um den Zugriff auf Daten in umgekehrter Richtung zu ermöglichen. Das heißt, javaScript auf einer SharePoint-Seite den Zugriff auf Daten in einer Remotedomäne zu ermöglichen. Weitere Informationen finden Sie unter Zugreifen auf Remotedaten über eine SharePoint-Seite.

Grundlegendes zur Architektur der domänenübergreifenden Bibliothek

Die domänenübergreifende SharePoint-Bibliothek ist in der Datei SP.RequestExecutor.js enthalten, die sich im virtuellen Ordner /_layouts/15/ jeder SharePoint-Website befindet. Die Skripts in dieser Datei kapseln eine sichere bekannte Technik zum Überwinden der Einschränkungen des Browsers bei domänenübergreifenden Skripts: Ein iFrame kann mit seiner übergeordneten Seite über die window.postMessage() -Funktion kommunizieren, auch wenn sich die Seite im iFrame in einer anderen Domäne befindet. Datenanforderungen und -antworten werden also mit Aufrufen an postMessage() über die Domänengrenze hinweg übergeben.

Warnung

Die Funktion postMessage() funktioniert nur mit Browsern, die HTML 5 unterstützen, d. h. SharePoint-Add-Ins, die die domänenübergreifende Bibliothek verwenden, funktionieren nicht mit älteren Browsern.

Bei SharePoint wird die domänenübergreifende Bibliothek auf einer Seite der Remotewebanwendung geladen, auf der sie einen verborgenen iFrame erstellt, der eine spezielle Proxyseite von der SharePoint-Domäne hostet. Die Proxyseite ist bereits auf jeder SharePoint-Website vorhanden.

The library is used to create a JavaScript Object Notation (JSON) object which contains all the information needed to make a CRUD call to the REST APIs of SharePoint. The JSON object is passed to the proxy page by using postMessage(). On the proxy page, where the library is also loaded, the JSON object is parsed and reconstructed as a REST call to SharePoint. Because the proxy page is in the SharePoint domain, the browser allows the call.

Die Remotekomponenten des SharePoint-Add-Ins benötigen natürlich dennoch autorisierten Zugriff auf die SharePoint-Ressourcen. Dazu gibt es zwei Möglichkeiten:

  • Legen Sie den Prinzipaltyp des Add-Ins auf RemoteWebApplication (der Standard für vom Anbieter gehostete Add-Ins) im Add-In-Manifest fest. Wenn das Add-In mit ACS registriert wird, schließt die Registrierung die Domäne der Remotewebanwendung ein. SharePoint vertraut mit ACS registrierten Domänen, auch wenn es in diesem Szenario keine der Tokenübergabeabläufe verwendet, die Teil des serverseitigen Systems mit niedriger Vertrauensebene sind. Ausführliche Informationen zum Registrieren von Add-Ins finden Sie unter Registrieren von SharePoint-Add-Ins.

  • Bei einem in SharePoint gehosteten Add-In können Sie für den Prinzipaltyp des Add-Ins den Standardwert Internal übernehmen. Anschließend können Sie das AllowedRemoteHostUrl-Attribut des Internal-Elements auf die URL der Remotewebanwendung festlegen, wie im folgenden Beispiel gezeigt.

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

Hinweis

Wenn Sie die zweite Option (einen internen Add-In-Prinzipal) verwenden, können Sie nur JavaScript und die domänenübergreifende Bibliothek für den Zugriff auf SharePoint verwenden. Das SharePoint-Clientobjektmodell ist für interne SharePoint-Add-Ins blockiert, sodass Sie kein Dual-Autorisierungssystem haben können, das sowohl die domänenübergreifende Bibliothek als auch die Systeme mit niedriger oder besonders vertrauenswürdiger Eigenschaft verwendet.

Details zur Verwendung der Bibliothek finden Sie unter Zugreifen auf SharePoint-Daten über Add-Ins mithilfe der domänenübergreifenden Bibliothek.

Zugreifen auf Remotedaten von einer SharePoint-Seite

Die domänenübergreifende SharePoint-Bibliothek kann auch in umgekehrter Richtung verwendet werden. Das heißt, JavaScript auf einer SharePoint-Seite kann die Bibliothek verwenden, um Daten aus den Remotekomponenten des Add-Ins abzurufen. Dazu müssen Sie die domänenübergreifende Architektur umkehren: Erstellen Sie eine Proxyseite in der Remotewebanwendung. Die Bibliothek wird von einer SharePoint-Seite aufgerufen, auf der ein iFrame zum Hosten der Proxyseite erstellt wird.

Details zur Verwendung der Bibliothek auf diese Weise finden Sie unter Erstellen einer benutzerdefinierten Proxyseite für die domänenübergreifende Bibliothek in SharePoint.

Siehe auch