Erstellen eines Workflows mit erweiterten Berechtigungen mithilfe der SharePoint-Workflow-PlattformCreate a workflow with elevated permissions by using the SharePoint Workflow platform

Dieser Artikel beschreibt, wie Sie SharePoint-Workflows erstellen, die auf Objekte in SharePoint zugreifen, die erweiterte Berechtigungen erfordern. Diese Lösungen verwenden zwei Features: Erteilen von Berechtigungen für die Workflow-App und Umhüllen der Aktionen mit dem App-Schritt.This article describes how to create SharePoint workflows that access objects in SharePoint that require elevated permissions. These solutions use two features: granting permissions to the workflow app and wrapping actions with the App Step.

Wichtig

In diesem Artikel wird davon ausgegangen, dass die SharePoint-Workflow-Plattform installiert und konfiguriert sowie SharePoint für Add-Ins konfiguriert wurde. Weitere Informationen zu SharePoint-Workflow und Add-Ins für SharePoint, einschließlich Installation und Konfiguration, finden Sie unter Workflow in SharePoint und Installieren und Verwalten von Apps für SharePoint.This article assumes that the SharePoint Workflow platform has been installed and configured and that SharePoint has been configured for add-ins. For more information about SharePoint Workflows and SharePoint Add-ins, including installation and configuration, see Workflows in SharePoint and Install and manage SharePoint Add-ins.

Angenommen Sie als SharePoint-Administrator möchten einige Prozesse zum Verwalten von Benutzeranforderungen zum Erwerb von Add-Ins aus dem Office Store definieren.Imagine that as a SharePoint administrator, you would like to define some processes for managing user requests for purchases of add-ins from the Office Store. Im einfachsten Fall möchten Sie eine Bestätigungs-E-Mail senden, wenn ein Benutzer ein Add-In anfordert.In the simplest case, you want to send an acknowledgment email when a user requests an add-in. Außerdem möchten Sie dem Anforderungsgenehmigungsprozess vielleicht eine Struktur hinzufügen.In addition, you might also want to add structure to the request approval process.

Standardmäßig verfügt der Workflow nicht über die Berechtigung zum Zugreifen auf den App-Katalog.By default, workflow does not have permissions to access the app catalog. Für Kataloglisten in SharePoint sind Besitzerberechtigungen (Vollzugriff) erforderlich.Catalog lists in SharePoint require owner (full control) permissions. Workflows werden im Allgemeinen auf einer Berechtigungsstufe ausgeführt, die einer Schreibberechtigung entspricht.Workflows generally run at a permission level equivalent to write.

Um dies zu beheben, müssen Sie einen Workflow mit erweiterten Berechtigungen erstellen, indem Sie auf der Websitesammlungs-Website folgendermaßen vorgehen:To solve this, you have to create a workflow with elevated permissions by doing the following in the Site Collection site:

  1. Lassen Sie zu, dass der Workflow Add-In-Berechtigungen verwendet.Allow the workflow to use add-in permissions.

  2. Erteilen Sie dem Workflow die Berechtigung für den Vollzugriff.Grant full control permission to the workflow.

  3. Entwickeln Sie den Workflow entsprechend, dass Aktionen innerhalb eines App-Schritts umhüllt werden.Develop the workflow to wrap actions inside an App Step.

Zulassen der Verwendung von Add-In-Berechtigungen auf einer SharePoint-Website für WorkflowsAllow a workflow to use add-in permissions on a SharePoint site

Der erste Schritt besteht darin, die Verwendung von Add-In-Berechtigungen in Workflows zuzulassen.The first step is to allow the workflow to use add-in permissions. Sie konfigurieren Workflows zum Verwenden von Add-In-Berechtigungen auf der Seite Websiteeinstellungen der SharePoint-Website, auf der der Workflow ausgeführt wird.You configure a workflow to use add-in permissions on the Site settings page of the SharePoint site where the workflow runs. Mit dem folgenden Verfahren wird die SharePoint-Website zum Verwenden von Add-In-Berechtigungen in Workflows konfiguriert.The following procedure configures the SharePoint site to allow the workflow to use add-in permissions.

Wichtig

Das Verfahren muss von einem Benutzer abgeschlossen werden, der über die Websitebesitzer-Berechtigungen verfügt.The procedure must be completed by a user that has Site Owner permissions.

So lassen Sie zu, dass der Workflow Add-In-Berechtigungen verwendet:To allow workflow to use add-in permissions

  1. Wählen Sie das Symbol Einstellungen, wie in der Abbildung gezeigt, aus, um die Seite Websiteeinstellungen zu öffnen.Select the Settings icon as shown in the figure to open the Site settings page.

    Einstellungen-Menü

  2. Wechseln Sie zu Websiteeinstellungen.Go to Site settings.

  3. Wählen Sie im Abschnitt Websiteaktionen die Option Websitefeatures verwalten aus.In the Site Actions section, select Manage site features.

  4. Suchen Sie das Feature Workflows dürfen App-Berechtigungen verwenden, wie in der Abbildung gezeigt, und klicken Sie dann auf Aktivieren.Locate the feature called Workflows can use app permissions, as shown in the figure, and then select Activate.

    Warnung

    Dieses Feature wird nicht aktiviert, sofern Sie die SharePoint-Workflow-Plattform und auch die SharePoint-Add-Ins nicht ordnungsgemäß konfiguriert haben.This feature will not activate unless you have properly configured the SharePoint Workflow platform and SharePoint Add-ins.

    Workflow kann App-Berechtigungen-Feature verwenden

Erteilen der Berechtigung „Vollzugriff“ für einen WorkflowGrant full control permission to a workflow

Damit der Workflow ordnungsgemäß funktioniert, muss er über Vollzugriff auf die Website verfügen.For the workflow to function properly, it must be granted full control on the site. Im folgenden Verfahren wir dem Workflow Vollzugriff gewährt.The following procedure grants full control permission to the workflow.

Wichtig

Das Verfahren muss von einem Benutzer abgeschlossen werden, der über die Websitebesitzer-Berechtigungen verfügt.The procedure must be completed by a user that has Site Owner permissions. Der Workflow muss bereits auf der SharePoint-Website veröffentlicht worden sein.The workflow must already be published to the SharePoint site.

So erteilen Sie einem Workflow die Berechtigung „Vollzugriff“To grant full control permission to a workflow

  1. Klicken Sie auf das Symbol Einstellungen.Select the Settings icon.

    Einstellungen-Menü

  2. Wechseln Sie zu Websiteeinstellungen.Go to Site settings.

  3. Wählen Sie im Abschnitt Benutzer und Berechtigungen die Option Website-App-Berechtigungen aus.In the Users and Permissions section, select Site app permissions.

  4. Kopieren Sie den Abschnitt Client der App-ID. Dies ist die ID zwischen dem letzten "|" und dem Zeichen "@", wie in der Abbildung gezeigt.</span><span class="sxs-lookup">Copy the client section of the App Identifier. This is the identifier between the last "|" and the "@" sign, as shown in the figure.

    Auswählen des App-Bezeichners

  5. Wechseln Sie zur Seite Einer App Berechtigungen erteilen.Go to the Grant permission to an app page. Dies muss durch Navigieren zur Seite „appinv.aspx“ der Website erfolgen.This must be done by browsing to the appinv.aspx page of the site.

    Beispiel: http://{hostname}/{the Site Collection}/_layouts/15/appinv.aspx.Example: http://{hostname}/{the Site Collection}/_layouts/15/appinv.aspx.

    Hinweis

    Die „App“ bezieht sich in diesem Schritt auf das Workflow-Add-In im Allgemeinen und nicht auf einen bestimmten Workflow.The 'app' in this step refers to the workflow add-in in general and not just a specific workflow. Der Zugriff auf einzelne Workflows kann nicht gesteuert werden.Individual workflows cannot be access controlled. Wenn Sie Add-In-Berechtigungen aktivieren, sind sie für alle Workflows in der Websitesammlung aktiviert.When you enable add-in permissions, you are enabling for all workflows within the Site Collection.

    Weitere Informationen zum Einrichten eines Workflows finden Sie unter Blogartikel von Sympraxis Consulting: Durchlaufen von Inhalten in einem Website-Workflow in SharePointFor more information about setting up a workflow, see the Blog article from Sympraxis Consulting: Looping Through Content in a SharePoint Site Workflow

    Die folgende Abbildung zeigt ein Beispiel.The following figure shows an example.

    "appinv.aspx"-URL-Beispiel und -Seite.

  6. Fügen Sie die Client-ID in das Feld App-ID ein, und klicken Sie dann auf Nachschlagen, wie in der vorherigen Abbildung gezeigt.Paste the client ID in the App Id field, and then select Lookup, as shown in the previous figure.

  7. Fügen Sie den folgenden Code in das Feld Berechtigungsanforderungs-XML ein, um die Berechtigung „Vollzugriff“ zu erteilen (Hinweis: Dieser Codeblock wurde am 29.12.2017 aktualisiert und enthält nun AllowAppOnlyPolicy).Paste the following code in the Permission Request XML field to grant full control permission (note: this code block was updated on 12/29/17 to include the AllowAppOnlyPolicy).

     <AppPermissionRequests AllowAppOnlyPolicy="true">
         <AppPermissionRequest Scope="http://sharepoint/content/sitecollection/web" Right="FullControl" />
     </AppPermissionRequests>
    

    Warnung

    Der Scope-Wert enthält keine Platzhalter.There are no placeholders in the Scope value. Es ist ein Literalwert.It is a literal value. Geben Sie ihn genau so ein, wie er hier dargestellt wird.Enter it exactly as it appears here.

    In der folgenden Abbildung ist ein Beispiel der abgeschlossenen Seite dargestellt (beachten Sie, dass der Code im Bereich Berechtigungsanforderungs-XML nicht das kürzliche Update am Code in Schritt 7 widerspiegelt.The following figure shows an example of the completed page (note that the code in the Permission Request XML area does not reflect the recent update to the code in Step 7).

    Nachschlagen einer App-ID.

  8. Wählen Sie Erstellen aus.Select Create.

  9. Sie werden dann aufgefordert, dem Workflow-Add-In zu vertrauen, wie in der folgenden Abbildung dargestellt.You are then asked to trust the workflow add-in, as shown in the following figure. Wählen Sie Vertrauen aus.Select Trust It.

    Der Workflow-App vertrauen.

Umhüllen von Aktionen innerhalb eines App-SchrittsWrap actions inside an App Step

Abschließend müssen Sie die Workflowaktionen in einem App-Schritt umhüllen. Das folgende Verfahren umhüllt die Aktion E-Mail senden innerhalb eines App-Schritts. Der Workflow in diesem Beispiel sendet eine Bestätigungs-E-Mail aus einer benutzerdefinierten Liste.Finally, you need to wrap the workflow actions inside an App Step. The following procedure wraps a Send an Email action inside an App Step. The workflow in this example sends an acknowledgement email message from a custom list.

So umhüllen Sie Aktionen innerhalb von App-SchrittenTo wrap actions inside an App Step

  1. Öffnen Sie die App-Katalogwebsite in SharePoint Designer.Open the App Catalog site in SharePoint Designer.

  2. Erstellen Sie eine benutzerdefinierte Liste, für die der Workflow ausgeführt werden soll.Create a new Custom List on which to run the workflow. In diesem Beispiel ist der Listenname App-Demo.In this example, the list name is App Demo.

  3. Klicken Sie im Navigationsfenster auf Workflows.Select Workflows in the navigation window.

  4. Erstellen Sie einen neuen Listenworkflow für die Liste App Demo, wie in der Abbildung gezeigt.Create a new List Workflow for the App Demo list, as shown in the figure.

    Einen neuen Listenworkflow erstellen.

  5. Fügen Sie einen App-Schritt hinzu, wie in der Abbildung gezeigt.Insert an App Step, as shown in the figure.

    Hinzufügen eines App-Schritts.

  6. Fügen Sie die Aktion E-Mail senden im App-Schritt ein.Insert a Send an Email action in the App Step.

  7. Klicken Sie auf die Schaltfläche Adressbuch.Select the Address book button. Wählen Sie im Feld An die Option Workflow-Nachschlagevorgang für einen Benutzer aus, und klicken Sie dann auf Hinzufügen, wie in der Abbildung gezeigt.In the To field, select Workflow Lookup for a User, and then select Add as shown in the figure.

    Workflow-Nachschlagevorgang für einen Benutzer auswählen.

  8. Geben Sie das Feld Erstellt von als Suchwert ein, wie in der Abbildung gezeigt.Enter the Created By field as the lookup value, as shown in the figure.

    Dialog zum Nachschlagen von Personen.

  9. Geben Sie** E-Mail** aus der Liste App Demo in den Nachrichtentext der E-Mail ein.Enter Email from the App Demo list in the email message body.

  10. Klicken Sie auf OK, um zum Workflow zurückzukehren.Select OK to return to the workflow. Der abgeschlossene Workflow ist in der Abbildung dargestellt.The completed workflow is shown in the figure.

    E-Mail-Aktion im App-Schritt.

  11. Klicken Sie auf dem Menüband auf das Symbol Workfloweinstellungen, wie in der Abbildung gezeigt.Select the Workflow Settings icon in the ribbon, as shown in the figure.

    Symbol für Workfloweinstellungen im Menüband.

  12. Deaktivieren Sie das Kontrollkästchen neben Workflowstatus automatisch auf dem aktuellen Phasennamen aktualisieren, und klicken Sie dann auf Veröffentlichen.Clear the check box next to Automatically update the workflow status to the current stage name, and then select Publish.

    Häkchen für automatische Updates entfernen und veröffentlichen.

Erläuterung der FunktionsweiseUnderstand how it works

Um zu verstehen, warum das Erhöhen von Berechtigungen für einen Workflow erforderlich ist, müssen Sie bedenken, dass Workflows im Grunde genommen Add-Ins für SharePoint sind und dass sie denselben Autorisierungsregeln des Add-In-Modells folgen.To understand why elevating permissions for a workflow is required, consider that workflows are fundamentally add-ins for SharePoint, and they follow the same authorization rules of the add-in model. Die Standardkonfiguration für den Workflow besteht darin, dass effektive Berechtigungen des Workflows eine Schnittmenge von Benutzerberechtigungen und den Add-In-Berechtigungen sind, wie in der Abbildung dargestellt.The default configuration for workflow is that the effective permissions of the workflow are an intersection of user permissions and the add-in permissions, as shown in the figure.

Berechtigungendiagramm.

Es gibt zwei Gründe, warum es erforderlich ist, die Berechtigungen zum Erstellen eines Workflows in der Liste der App-Anforderungen zu erhöhen. Dies sind:Two reasons why it is necessary to elevate permissions to create a workflow in the App Request list are:

  • Standardmäßig verfügt der Workflow nur über die Schreibberechtigung.By default, workflow only has write permission.

  • Der Benutzer verfügt über keine Berechtigungen.The user has no permissions.

Der erste Schritt zur Lösung dieses Problems besteht darin, der Anwendung die Autorisierung zu gestatten, indem nur ihre Identität verwendet und die Identität des Benutzers ignoriert wird. Dies erfolgt durch das Aktivieren des App-Schritt-Features. Im zweite Schritt wird dem Workflow der Vollzugriff gewährt.The first step to solve this problem is to allow the application to authorize by using only its identity and ignoring that of the user. This is done by enabling the App Step feature. The second step grants full control permission to the workflow.

Das folgende Diagramm veranschaulicht die Änderung der Berechtigungen.The following diagram illustrates the change in permissions.

Berechtigungenmatrix.

Siehe auchSee also