SharePoint 2010 Deployment (Teil 3) – Erstellen von Secure Store Applikationen

9. Mai 2012

Bei SharePoint 2010 Deployment handelt es sich um eine Serie von Blogbeiträgen, die die verschiedenen Schritte für das Deployment von SiteCollections erläutert und ausführt. Dabei wird der Fokus auf das Wiederherstellen einer Backup-Datei aus einer SharePoint-Umgebung in eine andere (z.B. von einer Entwicklungsumgebung auf eine Test- oder Produktivumgebung) gelegt.

 

Die Serie “SharePoint 2010 Deployment” besteht aus den folgenden Beiträgen:

  1. Erstellen einer SiteCollection
  2. Wiederherstellen einer Backup-Datei
  3. Erstellen von Secure Store Applikationen
  4. Importieren von Business Data Connectivity Models
  5. Deployment von SQL Server Reporting Services Reports

Im dritten Teil dieser Blogserie behandeln wir das Erstellen von Secure Store Applikationen in SharePoint 2010 mit Hilfe von Powershell. Dafür erweitern wir die, im ersten Teil der Blogserie, erstellte Konfigurationsdatei sowie das Powershell-Skript, um die Aktionen für das Erstellen einer Secure Store Applikation. Dieses Powershell-Skript kann entsprechend der Anforderung individuell angepasst werden.

Für das Erweitern, der in dem ersten beiden Teilen der Blogserie erstellten Powershell-Datei, sowie das nachträgliche Ausführen sind die folgenden Schritte auszuführen:

  1. Erweitern der Konfigurationsdatei
  2. Erweitern der Powershell-Datei
  3. Ausführen

Was ist SharePoint 2010 Secure Store Service

Der Secure Store Service ist eine Dienstapplikation, welche als Manager für Berechtigungen z.B. auf SQL Server Datenbanken fungiert. Es ersetzt, das aus SharePoint 2007 bekannte, Single Sign-On.

Ein Secure Store Service kann aus einer oder mehreren Secure Store Applikationen bestehen. Wobei jede Applikation auf eine andere Datenquelle zugreift.

Bevor wir mit dem Erstellen von Secure Store Applikationen beginnen, sollte sichergestellt werden, dass bereits ein Key in den Secure Store Services generiert und eine Pass Phrase erstellt worden sind.

Klicken Sie hierzu in der Central Administration unter Application Management->Manage service applications auf den Secure Store Service. Wenn noch kein Master Key erstellt worden ist, klicken Sie auf Generate New Key, um einen neuen Key zu erstellen.

image

Geben Sie im nächsten Schritt einen Key für die Pass Phrase ein.

image

Weitere Informationen zur Konfiguration des Secure Store Service finden Sie hier.

Erweitern der Konfigurationsdatei

Um ein unabhängiges Deployment zu verwenden, haben wir in den vorherigen Teilen dieser Blogserie eine Konfigurationsdatei (Konfiguation.xml) erstellt. Diese muss nun um die Elemente für die Secure Store Applikationen erweitert werden.

<!-- Configuration for Secure Store Applications -->
<SecureStoreName>MySecureStore</SecureStoreName>
<TargetContactEmail>Email address</TargetContactEmail>
<CredentialUserName>Username</CredentialUserName>
<CredentialPassword>Password</CredentialPassword>

In diesem Fall erstellen wir nur eine  Secure Store Applikation. Die Konfigurationsdatei muss dann um die entsprechenden Elemente für die weiteren Secure Store Applikationen erweitert werden.

Erweitern der Powershell-Datei

In den kommenden Schritten muss die Powershell-Datei (Deployment.ps1), die wir bereits im ersten Teil dieser Blogserie erstellt haben, angepasst werden.

Zuerst müssen die Elemente aus der Konfigurationsdatei in die Powershell-Datei eingebunden werden.

#Secure Store Variables
$TargAppContact = $configurationElement.Config_Content.TargetContactEmail
$SecureStoreName = $configurationElement.Config_Content.SecureStoreName
$CredentialUserName = $configurationElement.Config_Content.CredentialUserName
$CredentialPassword = $configurationElement.Config_Content.CredentialPassword

In dem folgenden Beispiel erstellen wir lediglich eine neue Secure Store Applikation. Wenn mehrere Secure Store Applikationen erstellt werden sollen, muss das Powershell-Skript um die weiteren Secure Store Applikationen erweitert werden

Im folgenden Schritte überprüfen wir vorab, ob bereits eine Secure Store Applikation mit demselben Namen existiert. Falls dieses der Fall ist, soll die vorhandene Applikation gelöscht werden.

Write-Host "Create Secure Store Applications Start"
#----- Remove Secure Store if exist -----
$SecureStoreExist = Get-SPSecureStoreApplication -ServiceContext $Webapplication -Name "$SecureStoreName" -EA 0
if($SecureStoreExist -ne $null)
{
  Remove-SPSecureStoreApplication -Identity $SecureStoreExist -Confirm:$false
}

Anschließend erstellen wir Variablen, die später an den Befehl zum Erstellen der SecureStore-Applikation angebunden werden.

#----- Declare variables used for all Secure Store Applications -----
$usernameField = New-SPSecureStoreApplicationField -Name "Windows User Name" -Type WindowsUserName -Masked:$false
$passwordField = New-SPSecureStoreApplicationField -Name "Windows Password" -Type WindowsPassword -Masked:$true
$securityfields = $usernameField, $passwordField
#Secure Store Application Administrator Account (DomainAccountname)
$owner1 = New-SPClaimsPrincipal -Identity "<Domain><User>" -IdentityType WindowsSamAccountName

Im folgenden Code-Segment fügen wir den Befehl zum Erstellen der Secure Store Applikationen aus.

#----- Secure Store 'MySecureStore' ------
# The next row add a new Target Application for the Secure Store. The informations like "Name", "FriendlyName" and "ContactEmail" are parameterized.
$TargetApp = New-SPSecureStoreTargetApplication -Name "$SecureStoreName" - FriendlyName "MySecureStore" -ContactEmail "TargetAppContact" -ApplicationType Individual
#This row creates a new Secure Store Application on a server.
New-SPSecureStoreApplication -ServiceContext $Webapplication -TargetApplication $TargetApp -Fields $securityfields -Administrator $owner1

Sollte der ApplicationType Group verwendet werden, benötigt man zusätzlich noch ein oder mehrere Benutzer, die auf die Secure Store Applikation zugreifen dürfen. Hierzu muss zusätzlich noch der Parameter –CredentialsOwnerGroup in die Methode New-SPSecureStoreApplication hinzugefügt werden.

Bei der Verwendung des ApplicationType Group, muss das Code-Segment für das Erstellen der Secure Store Applikation folgendermaßen aussehen:

#Secure Store Application members (DomainAccountname)
$member1 = New-SPClaimsPrincipal -Identity "<Domain><User>" -IdentityType WindowsSamAccountName
$member2 = New-SPClaimsPrincipal -Identity "<Domain><User>" -IdentityType WindowsSamAccountName
…
$memberList = $member1, $member2,…

#----- SecureStore ------
# The next row add a new Target Application for the Secure Store. The informations like "Name", "FriendlyName" and "ContactEmail" are parameterized.
$TargetApp = New-SPSecureStoreTargetApplication –Name "$SecureStoreName" –FriendlyName "MySecureStore" -ContactEmail "$TargAppContact" –ApplicationType Group 
# This row creates a new Secure Store Application on a server. It uses the variables created in the rows before for the configuration
# of the SecureStore Application.
New-SPSecureStoreApplication –ServiceContext $Webapplication –TargetApplication $TargetApp –Fields $securityfields –Administrator $owner1 -CredentialsOwnerGroup $memberList

Abschließend müssen noch die Credentials für die Applikation gesetzt werden. Dafür muss der folgenden Code in der Powershell-Datei eingefügt werden:

# Set credentials for the SecureStoreApplication 
$ssoapp = Get-SPSecureStoreApplication -ServiceContext $Webapplication -Name "$SecureStoreName"
$username = ConvertTo-SecureString $CredentialUsername -AsPlainText -Force
$password = ConvertTo-SecureString $CredentialPassword -AsPlainText -Force
$credentialValues = $username, $password
# Set the credentials for the SecureStoreApplication if the type is "Individual"
Update-SPSecureStoreCredentialMapping -Identity $ssoapp -Values $credentialValues -Principal $owner1
# Set the credentials for the SecureStoreApplication if the type is "Group"
#Update-SPSecureStoreGroupCredentialMapping -Identity $ssoapp -Values $credentialValues
Write-Host "Create SecureStore Applications End"

Ausführen

Öffnen Sie nun auf dem Server das Microsoft SharePoint 2010 Management Shell und navigieren zu dem Verzeichnis, in dem Sie die Datei Deployment.ps1 gespeichert haben.

Sie können die Code-Blöcke für das Erstellen einer SiteCollection sowie das Wiederherstellen einer Backup-Datei auskommentieren (<# Code-Block #>).

Führen Sie das Powershell-Skript Deployment.ps1 aus. Anschließend sollte folgendes Fenster erscheinen.

image

Fazit

Zusammenfassend lässt sich sagen, dass man mit Hilfe von Powershell in SharePoint 2010 einfach administrative und konfigurierbare Schritte ausführen lassen. Dieses bedeutet, insbesondere für Administratoren und Entwickler, eine erhebliche Zeitersparnis.

Mit dem Erstellen von Secure Store Applikationen, werden die erstellten Dateien aus dem ersten Teil um die Secure Store Applikationen erweitert. Mit Hilfe des angepassten Skriptes können jetzt die benötigten Secure Store Informationen ausgewertet und in das Deployment integriert werden. Dabei werden die Secure Store Informationen passend ausgelesen und mit Hilfe des Powershell Skripts in die neue Datenbank importiert.

Im vierten Teil dieser Blogserie SharePoint 2010 Deployment beschäftigen wir uns mit dem Thema Importieren von Business Data Connectivity Models.

Hier finden Sie eine Übersicht aller Blogbeiträge zu dieser Blogserie.

Teil 1                    Teil 2                    Teil 3                    Teil 4                    Teil 5