Blogserie: Apps in SharePoint 2013 – Teil 1: Vorbereitung und Bereitstellung einer Provider Hosted App


Mit diesem Blogserie möchte ich eine Einführung in die App-Entwicklung in SharePoint 2013 geben. Zunächst möchte ich über Provider Hosted Apps sprechen, da diese für Businessanwendung aus meiner Sicht öfter genutzt werden als Auto Hosted- oder SharePoint Hosted Apps. Falls Sie noch nicht den Unterschied zwischen den Hostingoptionen kennen, möchte ich Ihnen folgenden Artikel ans Herz legen: http://msdn.microsoft.com/en-us/library/fp179887.aspx

Um eine Provider Hosted App bereitzustellen muss man sein System dafür vorbereiten. Dies wollen wir im ersten Schritt machen um anschließend die obligatorische “Hello World”-App zu entwickeln.

 

Zertifikat

Zunächst muss dafür ein privates und öffentliches Zertifikat erstellen. Hierfür öffnen sie den IIS-Manager und klicken auf den Servernamen.

image

Anschließend öffnen Sie die Option “Server Certificates”.

image

Mit “Create Self-Signed Certificate” kann ein eigenes Zertifikat erstellt werden. Geben Sie noch einen Name für das Zertifikat an und klicken Sie Ok. Im Kontextmenü finden Sie die Option “Export”. Hiermit wird das Zertifikat mit einem Passwort versehen und als pfx-Datei exportiert.

Nun müssen Sie noch eine korrespondierende cer-Datei erstellen. Hierfür Öffnen Sie das Zertifikat im Reiter Details.

image

Wählen Sie “Copy to File” und im Wizard die Option “No, do not export the private key”. Anschließend geben Sie noch einen Pfad an zu dem das Zertifikat exportiert werden soll.

 

Issuer ID

Als nächstes muss eine Issuer ID ausgestellt werden. Hierfür generieren Sie sich auf einem beliebigen Weg eine GUID. Achten Sie darauf das alle Buchstaben klein geschrieben sind. Sonst kommt es später bei der Bereitstellung zu einem Fehler. Bitte bewahren Sie diese Guid auf, da sie später noch benötigt wird.

Beispiel: d3b60cc5-fbc8-48a2-80e2-c040fa788d02

 

SharePoint für ein Server-to-Server-Szenario (S2S) konfigurieren

Hierfür verwenden Sie folgendes Powershellskript. Es erstellt einen SPTrustedSecurityTokenIssuer. Dieser dient dazu eine Trust-Verbindung zwischen einer App und einer Webapplikation herzustellen. Nur hierdurch wird es möglich, dass sich der Benutzer nicht erneut an einer Webapplikation anmelden muss.

Achten Sie darauf den Zertifikatspfad in Zeile 1 anzupassen. Die Issuer ID, die wir im Schritt zuvor generiert haben, muss in Zeile 2.

 
  1. $publicCertPath = “C:\cert\MyApp.cer”
  2. $issuerId = “d3b60cc5-fbc8-48a2-80e2-c040fa788d02”
  3. $spurl =“https://sharepoint.hansevis13a.dev.hansevision.de”
  4. $spweb = Get-SPWeb $spurl
  5. $realm = Get-SPAuthenticationRealm -ServiceContext $spweb.Site
  6. $certificate = Get-PfxCertificate $publicCertPath
  7. $fullIssuerIdentifier = $issuerId + ‘@’ + $realm
  8. New-SPTrustedSecurityTokenIssuer -Name “MySecurityTokenIssuer” -Certificate $certificate -RegisteredIssuerName $fullIssuerIdentifier –IsTrustBroker

 

HTTPS für die Entwicklung ausschalten (optional):

Wenn Sie wollen, können Sie HTTPS für die Entwicklung ausschalten. Damit können Sie Ihre externe Webanwendung auch unter Http laufen lassen.

 
  1. $serviceConfig = Get-SPSecurityTokenServiceConfig  
  2. $serviceConfig.AllowOAuthOverHttp = $true 
  3. $serviceConfig.Update() 

 

Erstellen einer “Hello World”-Provider Hosted App:

Nun ist der große Moment gekommen, in dem wir unsere erste Provider Hosted App erstellen. Bitte starten Sie Visual Studio 2012 (als Administrator). Erstellen Sie ein neues Projekt vom Typ “App for SharePoint 2013″. Falls Sie bisher nicht die Office Developer Tools installiert haben, finden Sie diese hier: http://www.microsoft.com/visualstudio/deu#office-dev-tools-for-visual-studio

image

Im nächsten Schritt des Wizards ändern Sie den Bereitstellungstyp in Provider Hosted App. Bitte validieren Sie die Site auf der Sie die App entwickeln wollen. Diese sollte als Developer Site erstellt worden sein.

image

Im nächsten Schritt geben Sie den Pfad zum pfx-Zertifikat, das zugehörige Passwort und die generierte IssuerID an. Mit einem Klick auf Finish wird das Projekt erstellt.

Nach einem kurzen Druck auf F5 sollte das Projekt kompilieren und im SharePoint bereitgestellt werden. Der Benutzer muss bei der Bereitstellung der App noch einmal auf Trust klicken. Die Webapplikation wird für die Entwicklung im IIS Express gehostet.

 

Troubleshooting:

Falls die App nicht sofort bereitgestellt wird, gibt es mehrere Fehlerquellen, die man leider nicht anhand der Fehlermeldung unterscheiden kann. Fehlerquellen:

  • Dev-Server nicht korrekt am Domain-Controller registriert
  • IssuerId enthält Großbuchstaben
  • Es existiert kein Userprofile im SharePoint 2013
  • Die Webapplikation akzeptiert anonymen Zugriff (falls schon im IIS gehostet)
  • App-Zertifikat ist nicht im Zertifikatsspeicher
  • DisableLoopbackCheck nicht ausgeschaltet

 

Blogserie:

Dies war der erste Teil der Blogserie weitere Teile folgen:

  1. Vorbereitung und Bereitstellung einer Provider Hosted App
  2. Provider Hosted Apps und ASP.Net MVC
  3. Bereitstellung und Entwicklung der Applikation auf einem IIS
  4. SharePoint Hosted Apps – Zugriff auf das HostWeb
  5. SharePoint Hosted Apps – AppContext bei CSOM und REST
  6. SharePoint Hosted Apps – Entwicklung mit CSOM und REST

 

Quellen: http://msdn.microsoft.com/en-us/library/office/apps/fp179901

 
Bild von Steffen Schindler (ehemaliger Mitarbeiter)
Steffen Schindler (ehemaliger Mitarbeiter) Diese Person ist nicht mehr bei HanseVision tätig. Alle Artikel des Autors

Ähnliche Blog-Artikel

Mit unserem HanseVision Update sind Sie immer gut informiert über alle Themen rund um moderne Zusammenarbeit, kluge Köpfe, Lösungen und Tools, Referenzen und Aktionen.

Jetzt zum Newsletter anmelden
Updates & Aktionen
Versand alle 4-6 Wochen
Trends & aktuelle Entwicklungen