Die folgenden Abschnitte beschreiben, wie eine Node.JS-Anwendung betrieben werden kann, die nicht über den offiziellen Office-Store für SharePoint Online angeboten wird, sondern in einer lokalen Umgebung beim Kunden ausgeführt wird.
Die Notwendigkeit der Ausführung einer Provider-Hosted-App im eigenen Rechenzentrum ergibt sich aus:
- den Vorbehalten gegenüber einer Public-Cloud-Lösung bezüglich Datensicherheit und Zugriffsschutz
- dem Verzicht auf die öffentliche Erreichbarkeit der internen SharePoint-Infrastruktur.
Das hier beschriebene Szenario ist das einer High Trust App, dabei laufen der SharePoint-Server und der Anwendungsserver nicht öffentlich erreichbar in der eigenen Infrastruktur.
In der MSDN wird die entsprechende Vorgehensweise beschrieben. Dabei beschränken sich die Hinweis naturgemäß auf das Microsoftumfeld und die C#-Welt.
Außerhalb der .net-Welt fand ich diesen Blog-Beitrag, der die Implementierung des server2server-Protokolls genauer beleuchtet. Für eine konkretere Umsetzung fehlen noch einige Puzzle-Teile, die hier nun aufgezeigt werden sollen.
Die Implementierung verzichtet aktuell darauf, den Benutzer der Web-Anwendung zu authentifizieren, damit die Beispiele überschaubar bleiben. Im Gegensatz zu Low Trust Apps, die den Azure ACS-Dienst zur Authentifizierung verwenden, muss eine High Trust App dies selbst leisten. Deshalb ist (ähnlich wie bei den früheren Farm-Solutions) das Vertrauen an den App-Anbieter unbedingt notwendig.
Alle genutzten Projektdateien sind auch auf GitHub zu finden:https://github.com/ErikWegner/hightrust-sharepoint-node.js