zoukankan      html  css  js  c++  java
  • Create a workflow with elevated permissions by using the SharePoint 2013 Workflow platform

    FROM MSDN

    Learn how to create a workflow with elevated permissions by using the SharePoint 2013 Workflow platform.

    Applies to:  SharePoint Server 2013 Enterprise

    In this article
    SharePoint Server 2013 App Catalog and workflow
    Understanding how it works
    Additional resources

    SharePoint Server 2013 App Catalog and workflow


    This article describes how to create SharePoint 2013 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.

    Important note Important

    This article assumes that the SharePoint 2013 Workflow platform has been installed and configured and that SharePoint 2013 has been configured for apps. For more information on SharePoint 2013 Workflow and apps for SharePoint 2013, including installation and configuration, see Workflow in SharePoint 2013 and Install and manage apps for SharePoint 2013.

    Overview of creating a workflow with elevated permissions

    Imagine that as a SharePoint administrator, you would like to define some processes for managing user requests for purchases of apps from the Office Store. In the simplest case you want to send an acknowledgement email when a user requests an app. In addition, you could also want to add structure to the request approval process.

    By default, workflow does not have permissions to access the app request catalog. Catalog lists in SharePoint require owner (full control) permissions. Workflows generally run at permission level equivalent to write.

    To solve this, you have to create a workflow with elevated permissions by doing the following in the App Catalog site:

    1. Allow workflow to use app permissions.

    2. Grant full control permission to workflow.

    3. Develop the workflow to wrap actions inside an App Step.

    Allowing a workflow to use app permissions in a SharePoint Server 2013 site

    The first step is to allow workflow to use app permissions. You configure workflow to use app permissions on the Site Settings page of the SharePoint Server 2013 site where the workflow will run. The following procedure configures the SharePoint Server 2013 site to allow workflow to use app permissions.

    Important note Important

    The procedure must be completed by a user that has Site Owner permissions.

    To allow workflow to use app permissions
    1. Click the Settings icon as shown in the figure.

      Figure: Opening the Site Settings page

      Settings menu

    2. Go to Site Settings.

    3. In the Site Actions section, select Manage site features.

    4. Locate the feature called Workflows can use app permissions, as shown in the figure, and then click Activate.

      Caution note Caution

      This feature will not activate unless you have properly configured the SharePoint 2013 Workflow platform and also apps for SharePoint.

      Figure: The site feature, 'Workflows can use app permissions'

      Workflow can use app permissions feature

    Granting full control permission to a workflow

    In order for the workflow to function properly it must be granted full control in the site. The following procedure grants the full control permission to the workflow.

    Important note Important

    The procedure assumes the following:

    • The procedure must be completed by a user that has Site Owner permissions.

    • The workflow must already be published to the SharePoint Server 2013 site.

    To grant full control permission to a workflow
    1. Click the Settings icon as shown in the figure.

      Figure: Opening the Site Settings page

      Settings menu

    2. Go to Site Settings.

    3. In the Users and Permissions section, select Site app permissions.

    4. Copy the client section of the App Identifier. This is the identifier between the last "|" and the "@" sign, as shown in the figure.

      Figure: Selecting the App Identifier

      Selecting App Identifier

    5. Navigate to the Grant permission to an app page. This must be done by browsing to the appinv.aspx page of the site.

      Example: http://{hostname}/{catalog site}/_layouts/15/appinv.aspx.

      The following figure shows an example.

      Figure: The appinv.aspx page and URL example

      The appinv.aspx URL example and page.

    6. Paste the client id in the App Id field and then click Lookup, as shown in the figure.

    7. Paste the following Permissions Request XML to grant full control permission.

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

      Caution note Caution

      Make sure to set the Scope to the URL of your particular SharePoint Server 2013 installation. The preceding code uses an example URL.

      The following figure shows an example of the completed page.

      Figure: Looking up an App Id

      Looking up an App Id.

    8. Click Create.

    9. You will then be asked to trust the Workflow app, as shown in the figure. Click Trust It.

      Figure: Trust the Workflow app

      Trust the Workflow app.

    Wrapping actions inside an App Step

    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.

    To wrap actions inside an App Step
    1. Open the App Catalog site in SharePoint Designer 2013.

    2. Create a new Custom List on which to run the workflow. In this example the list name is App Demo.

    3. Click Workflows in the navigation window.

    4. Create a new List Workflow for the App Demo list, as shown in the figure.

      Figure: Create a new List workflow

      Create a new List workflow.

    5. Insert an App Step, as shown in the figure.

      Figure: Add an App Step

      Adding an App Step.

    6. Insert a Send an Email action in the App Step.

    7. Click the address book button. In the To field select Workflow lookup for a user and click add as shown in the figure.

      Figure: Select Workflow lookup for a user

      Select Workflow lookup for a user.

    8. Enter the Created By field as the lookup value, as shown in the figure.

      Figure: Lookup for Person dialog box

      Lookup for Person dialog.

    9. Enter Email from App Demo list in the email message body.

    10. Click OK to return to the workflow. The completed workflow is shown in the figure.

      Figure: Email action in App Step

      Email action in App Step.

    11. Click the Workflow Settings icon in the ribbon, as shown in the figure.

      Figure: Workflow Settings icon in ribbon

      Workflow Settings icon in ribbon.

    12. Clear the check box next to Automatic updates to workflow status to the current stage name, and then click Publish, as shown in the figure.

      Figure: Clear the automatic updates check mark and then publish

      Clear automatic updates check mark and publish.

    Understanding how it works


    To understand why elevating permissions for a workflow is required, consider that workflows are fundamentally apps for SharePoint and they follow the same authorization rules of the app model. The default configuration for workflow is that the effective permissions of the workflow are an intersection of user permissions and the app permissions, as shown in the figure.

    Figure: Permissions diagram

    Permissions diagram.

    There are two reasons why it is necessary to elevate permissions to create a workflow in the App Request list. These are:

    • By default, workflow only has write permission.

    • The user has no permissions.

    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.

    The following diagram illustrates the change in permissions

    Figure: Permissions matrix

    Permissions matrix.

    Additional resources


  • 相关阅读:
    我们应当如何做需求分析
    C++ 转型动作 尽量避免 以及 那些意想不到的威胁
    Jetty学习二:配置概览-怎么配置Jetty
    Android手机APN设置(中国移动 联通3G 电信天翼),解决不能上网的问题
    CreateFile使用方法和样例
    Installation of NVIDIA Drivers in RHEL/CentOS and Fedora
    【视频分享】Liger UI实战集智建筑project管理系统配商业代码(打印报表、角色式权限管理)
    JAVA实现HTTPserver端
    LeetCode: Implement strStr() [027]
    c++反汇编与逆向分析 小结
  • 原文地址:https://www.cnblogs.com/frankzye/p/3065374.html
Copyright © 2011-2022 走看看