Martin's Blog - Developer Infos zu SharePoint, ASP.NET, BI und anderen Technologien




powered by Component Software GmbH

SharePoint 2013 Server für App Development vorbereiten

Auch wenn es sich anbietet die Online Variante von SharePoint 2013 für die App Entwicklung zu verwenden. Manchmal muss es doch eine On-Premise-Lösung sein.

Aber wie ist der SharePoint Server zu konfigurieren, sodass App Development auf der Maschine möglich ist. Hier eine kleine Anleitung:

Dev Site Collection

Apps können aus dem Visual Studio nur zu einer Developer SiteCollection deployed werden. Daher als erstes eine SiteCollection mit der Developer Site-Vorlage erstellen.

image

Service Applications und Services

die Server Applications: “User Profile Service Application” und “App Management Service” müssen gestartet sein. Unter ZA – Application Management – Manage Service Application ist dies zu kontrollieren.

image

image

Zusätzlich muss das User Profile Service auch bei den Services der Farm kontrolliert werden.

Unter ZA-Application Management-Manage Services on Server muss das “User Profile Service” gestartet sein:

image

Das SharePoint Foundation Subscription Service muss ebenfalls gestartet sein. Im Normalfall läuft dieses nicht und ist somit erst zu starten.

image

Um App zu deployen ist zumindest ein User-Profil notwendig. Auf der Konfigurationsseite der “User Profile Service Application” kann kontrolliert werden, ob ein Profile bereits angelegt wurde. Wenn nicht, ist ein Profile manuell anzulegen.

image

App Domain erstellen

Für jede App, die installiert wird, wird ein eigener Domain Eintrag angelegt. Dieser setzt sich aus einem Prefix und einer eindeutigen Nummer zusammen. Aus Security Gründen wird empfohlen, dass es sich hierbei um keine Subdomain handelt.

Zunächst wird eine neue Forwardlookupzone angelegt. In meinem Beispiel: “SharePointApps.local”

image

Im nächsten wird ein Alias für *. angelegt, welcher zum SharePoint Server (in meinem Beispiel Server1.ad.local) zeigt

image

Als Test, kann ein Ping auf: Apps-1234.SharePointApps.local dienen. Es sollte die IP Adresse des Server1 geliefert werden.

Anlegen der Subscription Setting Service Dienst Anwendung

Es ist eine weitere Dienstanwendung anzulegen. Diese ist nur über die PowerShell verfügbar. Daher hilft dieses Script weiter:

   1:  Add-PSSnapin "Microsoft.SharePoint.PowerShell"
   2:   
   3:   
   4:  $account = Get-SPManagedAccount "AD\SPApp" 
   5:   
   6:  $appPoolSubSvc = New-SPServiceApplicationPool -Name "SettingSericeAppPool" -Account $account
   7:  $appSubSvc = New-SPSubscriptionSettingsServiceApplication –ApplicationPool $appPoolSubSvc –Name "SettingsServiceApp" –DatabaseName "SettingsServiceDB"
   8:  $proxySubSvc = New-SPSubscriptionSettingsServiceApplicationProxy –ServiceApplication $appSubSvc

 

Konfiguration der APP URL

In SharePoint muss nun die AppDomain und die App URL gesetzt werden. In der ZA unter Apps – Configure App URL sind die Werte zu setzen

image

 

App Catalog anlegen

Um den Anwendern Apps zur Verfügung zu stellen muss eins App Catalog Site angelegt werden. Leider gibt es keinen Eintrag in der ZA. Aber mit folgender URL ist es möglich einen App Catalog anzulegen:

http://server1:11111/_admin/ManageCorporateCatalog.aspx

wobei meine ZA am Port 11111 angelegt wurde.

Mit diesem Link wird eine neue SiteCollection angelegt. Bei dieser gibt es kein Template zu wählen.

Zwischenstand – Was ist bisher möglich?

Der Benutzer kann Apps aus dem AppStore beziehen und verwenden.

SharePoint Hosted Apps können entwickelt werden. Für Provider Hosted Apps sind noch weitere Schritte notwendig.

Zertifikate für High Trust Apps (Provider hosted Apps) erstellen

Für die Verbindung zwischen APp und SharePoint ist ein Zertifikat notwendig. Dieses kann für die Developmentumgebung auch selbst ausgestellt werden. In der IIS Verwaltungskonsole wird ein neues Server Zertifikat angelegt.

image

Als friendly Name verwende ich: HighTrustSampleCert.

Dann wird das Zertifikat exportiert.

image

Als Pfad verwende ich “C:\certificates\HighTrustSampleCert.pfx” das nachfolgende PowerShell Script baut darauf auf.

Aus dem so erstellten Zertifikat muss nun eine .cer Datei erstellt werden. Ein Doppelklick auf das Zertifikat führt zu den Eigenschaften. Die zweite Karteikarte “Details” bringt einen Button “Copy to File..”

image

Einfach jeweils die Default-Einstellungen übernehmen und als Dateiname “C:\certificates\HighTrustSampleCert.cer” angeben.

Nun muss das Zertifikat in den SharePoint Server eingespielt werden. Hierbei hilft folgendes PowerShell Script:

$publicCertPath = "C:\certificates\HighTrustSampleCert.cer"
$issuerId = [GUID]"00000000-0000-0000-0000-000000000000"
$spurl = "http://server1"
$spweb = Get-SPWeb $spurl
$realm = Get-SPAuthenticationRealm -ServiceContext $spweb.Site
$certificate = Get-PfxCertificate $publicCertPath
New-SPTrustedRootAuthority -Name "HighTrustSampleAuth" -Certificate $certificate
$fullIssuerIdentifier = $issuerId.ToString() + "@" +$realm
New-SPTrustedSecurityTokenIssuer -Name $issuerId -Certificate $certificate -RegisteredIssuerName $fullIssuerIdentifier -IsTrustBroker
 
 

in Zeile 2 setze ich einen “eigenartigen” Guid als IssuerID. Der Grund ist, dass dieser ID im Visual Studio bei der Entwicklung angegeben werden muss. Und diesen merke ich mir leichter. Zwinkerndes Smiley

Nachdem es eine Entwicklungsgebung ist, sollte OAuth auch über http zugelassen werden.

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

Nachdem PowerShell Script ist ein IISReset notwendig.

Let’s start App Development

nun ist es auch möglich Provider Hosted Apps zu entwickeln. Bei der Anlage einer neuen App ist das Zertifikat und der IssuerID anzugeben:

image

Diese Einstellungen sind nachher in der Web.Config der App zu finden:

image

Beim ersten Start der App muss noch das Zertifikat installiert werden. Visual Studio übernimmt gleich diese Aufgabe, wenn man es lässt:

image

 

Done! nun können Apps entwickelt werden. Have Fun!

Kommentare sind geschlossen

Copyright © 2019 Martin Groblschegg - Impressum