Logo
programming4us
programming4us
programming4us
programming4us
Windows XP
programming4us
Windows Vista
programming4us
Windows 7
programming4us
Windows Azure
programming4us
Windows Server
programming4us
Windows Phone
 
 
Windows Server

Sharepoint 2010 : Creating and Managing Workflows - Planning for Workflow Deployment

6/19/2011 3:56:52 PM
Using workflows in SharePoint 2010 to automate business processes is a significant decision. There are some important considerations that administrators should be aware of to ensure the efficient implementation of these workflows. Some of the factors to be aware of include security issues, information disclosure, and the elevation of privileges. After effective planning, you can perform necessary configurations for workflow deployment and eventually activate workflows for the users of your farm or site.

1. Identify Roles Involved

As an administrator, you should be aware of various different roles involved in creating, deploying, and running workflows. In the following sections, you explore these roles and their associated responsibilities. Understanding these roles and how they impact workflow development will help you plan and mitigate any issues that can occur during the development life cycle or workflow execution.

1.1. Architects

Architects are responsible for identifying the appropriate business processes to be developed as workflows, based on the value created by the workflow to the organization. They are also responsible for selecting the workflow development tools, workflow development language, and the best practices that align with the enterprise architecture. Architects provide oversight of the various systems involved and how they will be integrated to automate the business processes of the organization. Architects ensure smooth transition of business strategies to vision scope to logical architecture to physical architecture to operational systems.

1.2. Workflow Developers

Developers are responsible for developing workflow templates, forms, and the assembly that contains the business logic used during workflow execution. This assembly is called a workflow schedule and is created using Visual Studio 2010. Developers are also responsible for packaging the workflow forms and assembly into a workflow feature and then into a solution package, which will be deployed to a SharePoint farm. Workflow developers are responsible for any issues that are encountered while executing custom workflows deployed in the SharePoint environment.

1.3. Information Workers

Information workers are responsible for modeling workflows using SharePoint Designer 2010. Information workers use the administrator-approved list of workflow activities to model their workflows and associate the workflows to a list, library, or a site. They can also create reusable workflows for a site collection. Information workers can create workflow steps that execute with the same permission as they have at the site level.

1.4. Farm Administrators

Farm administrators are typically part of the IT operations team. They are responsible for the Central Administration settings that will impact workflow development, deployment, and execution. Accordingly, they have the following responsibilities.

  • Manage Central Administration workflow settings Farm administrators can control general workflow settings, such as task alert results and external participant settings, within the SharePoint Central Administration website.

  • Deploy Workflow Solution Package and features Farm administrators can install solutions that contain workflow features and deploy workflow features to Web applications. Optionally, they also can activate those features on a site collection, making them available for association.

1.5. Site Collection Administrators

Site collection administrators are responsible for controlling the workflows that can be used within their sites. All custom and predefined workflows are deployed as features. By deactivating these features, the site collection administrator can prevent these workflows from being used within their site collection.

1.6. List Administrators

List administrators are groups or individuals with Manage List or Web Designer permissions. They can add specific workflows to a list and control their execution at the list level. Their responsibilities include

  • Adding a workflow List administrators associate (add) a workflow template to a list or content type, according to the business needs of the list or content type. This association makes the workflow template available to end users, who can then select default values and settings.

  • Removing a workflow List administrators can remove a workflow association from a list or content type, or they can prevent new instances from running.

  • Terminating a workflow If a workflow instance fails with an error or does not start, the list administrators can stop a running workflow instance by using the Terminate This Workflow link on the Workflow Status page. The Workflow Status page is visible to all participants of a workflow, but the link required to terminate a workflow link is reserved for list administrators.

1.7. Site Users

Site users are primarily participants of the workflows and are responsible for completing various tasks assigned to them by the workflow instance. They can also delegate the workflow tasks to other participants if the workflow provides such a feature.

2. Security Considerations

As an administrator, the security of your environment is one of your primary responsibilities. Implementing workflows in your SharePoint environment requires proper planning, and you should be aware of potential issues that can be caused by the workflows.

2.1. Workflows Run as Administrators

The most important security concept to be aware of is that workflows run as part of the system account in SharePoint 2010, through the identity provided within the application pool settings on the server computer. This means that within SharePoint 2010, workflows have administrative permissions. On the server, workflows have the same permissions as the application pool, which frequently has administrator permissions. These permissions enable workflows to perform actions that ordinary users cannot perform, such as routing a document to a specific location (for example, a records center) or adding a user account to the system.


Note:

SECURITY ALERT You cannot restrict the administrative privileges given to workflows. It is up to the workflow code to detect user actions, and based on those actions, continue or roll back changes, or impersonate a user to mimic that user’s permissions.


As an administrator of your SharePoint environment, you must understand the actions that the workflow will perform so that you can assess the possible risks associated with the elevation of permissions and help the developer mitigate any security concerns.

2.2. Impersonation in Declarative Workflows

Declarative workflows created using SharePoint Designer 2010 allow the information worker to configure the workflow steps (part of the workflow) to run using their permission. In SharePoint 2010, declarative workflows always run in the user context of the workflow initiator unless an impersonation step is encountered. If an impersonation step is encountered, the declarative workflow is run in the context of the workflow author. This feature is very useful for workflow authors, because it allows for the creation of workflows that perform activities that cannot be performed by a participant but are necessary for the workflow to complete.

Through a safe and scoped form of privilege elevation, site actions can be automated through workflow. This reduces the burden on the SharePoint site administrator. Automation of a high-security process using workflows is useful in publishing and approval scenarios in which specific actions are enabled to impersonate someone other than the workflow’s initiator. The following are some of the scenarios where an impersonation step can be used.

  • Publish to a secure list A workflow author can create a workflow that would allow a contributor to publish the content he or she is authoring to a secure library to which the contributor does not have access.

  • Granting permissions to users As a site administrator, you would like to allow business users to grant permissions to lists on your site. So you want to create a workflow in which a request is raised by a user who seeks access to a secured list. An approver user in the site can approve the request and the workflow will grant the requester access to the site. The approver user need not have list administration privileges to perform this action.

The following is the list of activities that can impersonate the workflow author:

  • Set Content Approval Status (as Owner)

  • Create List Item (as Owner)

  • Update List Item (as Owner)

  • Delete List Item (as Owner)

  • Add/Remove/Set/Inherit List Item Permissions (as Owner)

Knowing that the information worker can create impersonation steps will help you assess any security threats that could be posed by such workflows.

2.3. Permissions to Start Workflow

List administrators can restrict the permission level that is required to start a workflow during the association process. Administrators can select either of two permission levels to start a specific workflow association: Edit Item or Manage List.

The default setting for associating a workflow allows users with Edit Item permissions to start a workflow manually. This means that any authenticated SharePoint 2010 user on the list who has Edit Item permissions can start an instance of the workflow association. If the administrator selects the option to require a user to have Manage Lists permissions to start the when the workflow is created, only list administrators can start an instance of this association.

Because workflows are designed to be used by standard contributors, most workflows do not require the restriction to Manage List permissions. However, administrators can use this setting for workflows such as a document disposal workflow and other cases in which the administrator wants only certain people to execute the disposal actions.


Note:

SECURITY ALERT By default, user-defined workflows are enabled for all sites on the Web application. When user-defined workflows are enabled, users can define workflows in a workflow editor such as the SharePoint Designer 2010. Users who define these workflows must have Manage List permissions on the site to which they are deploying the workflow. The information worker can create workflows with the impersonation step. So, if you think that these declarative workflows are a threat to your site, you can prevent user-defined workflows on your Web applications until the threat is identified and removed.


3. Information Disclosure

Workflows that execute on your site can disclose information through tasks allocated to the users, through workflow tasks, or through task notifications to users who would not otherwise have access to this information. Some of these information disclosures can be prevented by configuration settings.

3.1. Task Notifications to Users Without Access

When a user starts a workflow, he or she can assign people to participate in the workflow. But in some cases, some of the participants may not have access to the list or site where the workflow is started. As the workflow executes, tasks are created for these participants and task notifications are sent so that they can act on the tasks. The task notifications can contain a link to the task, document, or list item, in addition to any message provided by the workflow imitator, thus leading to information disclosure. Also, these participants could be internal or external users (employees of your partner companies, for example).

SharePoint 2010 allows you to control whether such notifications can be sent and also whether they can be sent to both internal and external users.

3.2. Workflow Tasks and Workflow History

Tasks created as part of workflow execution are created in a standard task list on the site. Anyone with contribute permission to the task list can view all tasks on this list; this means that users might see links to documents to which they do not have access. Apart from tasks, a workflow also leaves a trail of actions performed during workflow execution to a workflow history list. Any user with view permission can see data captured in the workflow history list.

Securing tasks and workflow history items can be done in several ways. One way is for an administrator to set list level permissions. If disclosure should be private—that is, not publicly available but available to a specific group of people—then an administrator can create a new task or history list and set permissions for the list that are targeted to that group. If administrators do not want anyone to see history events on a workflow status page, they can remove view permissions to the workflow history list from which the status page pulls its information. Users who do not have permissions to view the history list itself, or any item on the list, will receive an Access Denied error when they open any status page that pulls data from that history list.

As an extreme case, an administrator can request that workflow authors set permissions for the tasks or workflow history items so that only users who are participating in the workflow can see these tasks. The CreateTask activity has a SpecialPermissions property that gives only specified permissions to access the newly created task. The LogToHistoryList activity does not have such a property, so to set per-item permissions on history list items, developers must use the object model (OM) in SharePoint 2010.


Note:

Using item level permissions can impact the performance of your SharePoint site. Use this capability with caution.


3.3. Tampering with Tasks and Workflow History Items

Any contributor can modify tasks or history items if there are no restrictions on those lists. This means that malicious users can modify task descriptions to give participants incorrect instructions or to order participants to click malicious links. To change the perceived results of a process, malicious users also can add false or inaccurate history events or can modify history events to make them false or inaccurate.

Task and history lists behave as normal lists in a site. By default, there are no restrictions on either task lists or history lists. To avoid spoofing and tampering attacks, administrators must determine the vulnerabilities that exist within their site and either restrict access to columns in a list (for example, make vulnerable columns such as task descriptions read-only so that only the workflow can set them on item creation), set special permissions on the list, or set item level permissions on the list items.


Note:

Do not use a workflow history list as an auditing tool for workflows. Plan to use the SharePoint Audit Log capability for auditing workflows and their actions. See the following sidebar titled Workflow History Lists vs. Event Audit Trails for more information.


Real World: Workflow History Lists vs. Event Audit Trails

A key benefit of workflows is the ability to track execution data to provide a view into the progress of the workflow. The workflow history list is a repository for this data, where a workflow status page can search for data related to a workflow instance and make this information available to users. Users can see all items to which they have access in the history list.

However, because the workflow history list tracks information, users might assume that it can be used as an audit trail of events. This is not the case, because a workflow history list is not a security feature. History lists are standard SharePoint lists that are used for storing events and are visible to any user. These lists have no special permissions associated with them. By default, users can modify and add events if they have Edit and Add permissions within the history list. To audit events, use SharePoint’s Audit Log feature. Only administrators can access this log, and the log does not require additional work to protect it from tampering attacks.

Other -----------------
- Windows Server 2008 R2 : Administering the IIS 7.5 FTP Publishing Service
- Windows Server 2008 R2 : Administering IIS 7.5 Web Sites
- Windows Server 2008 R2 : Installing and Configuring IIS 7.5
- Active Directory Domain Services 2008 : Manage Active Directory Domain Services Data - Rename User Object
- Active Directory Domain Services 2008 : Manage Active Directory Domain Services Data - Delete User Object
- Active Directory Domain Services 2008 : Manage Active Directory Domain Services Data - Create User Object
- Troubleshooting the Exchange Server 2003 Organization
- Troubleshooting Exchange Server 2003 Servers
- BizTalk 2009 : The Enterprise Service Bus Toolkit 2.0 - The Functional Components (part 4) - Business Rule Engine
- BizTalk 2009 : The Enterprise Service Bus Toolkit 2.0 - The Functional Components (part 3)
 
 
Trailer game
Video tutorials
- How To Install Windows 8 On VMware Workstation 9

- How To Install Windows 8

- How To Install Windows Server 2012

- How To Disable Windows 8 Metro UI

- How To Change Account Picture In Windows 8

- How To Unlock Administrator Account in Windows 8

- How To Restart, Log Off And Shutdown Windows 8

- How To Login To Skype Using A Microsoft Account

- How To Enable Aero Glass Effect In Windows 8

- How To Disable Windows Update in Windows 8

- How To Disable Windows 8 Metro UI

- How To Add Widgets To Windows 8 Lock Screen
programming4us programming4us
Popular tags
Microsoft Access Microsoft Excel Microsoft OneNote Microsoft PowerPoint Microsoft Project Microsoft Visio Microsoft Word Active Directory Biztalk Exchange Server Microsoft LynC Server Microsoft Dynamic Sharepoint Sql Server Windows Server 2008 Windows Server 2012 Windows 7 Windows 8 windows Phone 7 windows Phone 8
programming4us programming4us
 
Popular keywords
HOW TO Swimlane in Visio Visio sort key Pen and Touch Creating groups in Windows Server Raid in Windows Server Exchange 2010 maintenance Exchange server mail enabled groups Debugging Tools Collaborating
programming4us programming4us
Trailer game
 
programming4us
Girls
programming4us
Windows Vista
programming4us
Windows 7
programming4us
Windows Azure
programming4us
Windows Server
programming4us
Windows Phone