共用方式為


規劃工作流程安全性與使用者管理 (SharePoint Foundation 2010)

 

適用版本: SharePoint Foundation 2010

上次修改主題的時間: 2011-03-09

對使用者部署 Microsoft SharePoint Foundation 2010 中的工作流程之前,管理員可能有安全性問題的考量,例如資訊洩漏或權限提高。本文強調某些與安全性有關的工作流程行為面向,並提出其他問題,供管理員及工作流程開發人員於規劃設定及開發工作流程時加以考量。

本文內容:

清單管理員、管理員及開發人員的角色與責任

以下為部分常見的工作流程動作及相關責任,說明管理員及開發人員在執行工作流程時所扮演的角色。

工作流程開發人員

開發工作流程排程及範本   工作流程開發人員負責編寫包含商務邏輯的組件,而 SharePoint 項目上會執行此商務邏輯。此組件稱為工作流程排程。他們也負責將工作流程表單及組件封裝至工作流程功能或工作流程範本。

網站管理員

管理管理中心的工作流程設定   網站管理員可以控制一般的工作流程設定,例如 SharePoint 管理中心網站的工作提醒結果,以及外部參與人員設定。

部署工作流程功能   網站管理員可以在網站集合上安裝工作流程功能,讓相關人員可加以使用。

清單管理員 (具有「管理清單」或「網站設計者」權限的任何人)

新增工作流程   清單管理員必須根據清單或內容類型的業務需求,讓工作流程範本與清單或內容類型產生關聯 (新增)。此關聯性讓使用者得以取用工作流程範本,然後選取預設值及設定。

移除工作流程   清單管理員可移除清單或內容類型中的工作流程關聯性,或阻止新的執行個體加以執行。

終止工作流程   若工作流程失敗,清單管理員可使用 [工作流程狀態] 頁面的 [終止此工作流程] 連結,停止執行工作流程執行個體,例如當工作流程執行個體產生錯誤或不啟動時。此動作專供管理員之用。

以管理員身分執行工作流程

應了解的最重要之安全性概念是,透過伺服器電腦及網域上的身分識別應用程式集區設定,工作流程在 SharePoint Foundation 2010 中執行為系統帳戶之一部分。這表示在 SharePoint Foundation 2010 內,工作流程具有管理員權限。而在伺服器上,工作流程也有與應用程式集區相同的權限,後者經常具有管理員權限。這些權限可讓工作流程執行一般使用者無法執行的動作,例如傳送文件至特定位置或記錄中心,或是在系統中新增使用者帳戶。

工作流程具有管理員權限的此設定,無法加以變更。但會根據工作流程排程 (亦即工作流程程式碼) 偵測使用者動作,並以這些動作為基礎,繼續或回復變更,或模擬使用者以模仿該使用者權限。

當管理員部署工作流程時,必須了解工作流程會執行的動作,以評估工作流程中與提高權限相關的可能風險,並協助工作流程開發人員降低所有安全性考量。

工作流程組態設定

SharePoint Foundation 2010 有部分組態設定必須由管理員視其安全性需求加以設定。

開始工作流程的必要權限

除防止程式碼中發生提高權限問題,清單管理員還可在相關處理過程中,限制開始工作流程的必要權限等級。管理員可選取兩種權限等級的其中之一,開始特定的工作流程關聯:「編輯項目」或「管理清單」。

建立工作流程關聯性的預設設定,是為了讓有「編輯項目」權限的使用者能以手動方式開始工作流程。這表示清單中任何經過驗證的 SharePoint Foundation 2010 使用者,只要有「編輯項目」權限,即可開始此工作流程關聯的執行個體。若在建立工作流程時,管理員選取的選項是使用者必須有「管理清單」權限才可開始工作流程,則唯有清單管理員才可以開始此關聯的執行個體。

因為工作流程是設計供標準參與者使用,所以大部分的工作流程不需要有「管理清單」權限的限制。但管理員仍可使用此項工作流程設定,以文件處置工作流程為例,管理員只希望由特定人員執行處置動作。

管理中心設定

您可在 [管理中心] 頁面中找到下列設定,只要按一下 [應用程式管理],再按一下 [Web 應用程式] 區段中的 [管理 Web 應用程式]。在 [Web 應用程式] 頁面上,選取您要設定的 Web 應用程式,然後在功能區的 [管理] 群組中,按一下 [一般設定],再選取 [工作流程]。[工作流程設定] 頁面會隨即開啟,並顯示下列設定:

  • 使用者定義的工作流程

  • 工作流程工作通知

啟用使用者定義的工作流程

Web 應用程式的所有網站預設都會啟用使用者定義的工作流程,如 [工作流程設定] 頁面的 [使用者定義的工作流程] 區段所示。選取此選項時,使用者可使用 SharePoint Designer 2010 等工作流程編輯器定義工作流程。定義這些工作流程的使用者必須有工作流程部署所在網站的「管理清單」權限。

無網站存取權之使用者的工作通知

您可在 [工作流程設定] 頁面的 [工作流程工作通知] 區段中設定選項,將擱置工作流程工作的通知傳送給沒有網站存取權的使用者。

-
內部使用者

SharePoint Foundation 2010 有可能解析目錄服務中,非網站成員或沒有工作存取權的內部使用者名稱。在此種情況下,管理員可以選取 \[工作流程工作通知\] 區段中的 \[當指派工作流程工作給沒有網站存取權的內部使用者時,是否要提醒這些使用者\] 選項,設定是否讓此類使用者收到工作通知電子郵件。此選項表示當使用者獲派工作流程工作時,會收到提醒。此選項預設會啟用,而且使用者收到的電子郵件訊息會包含連結,按一下即可要求存取網站 (管理員仍必須授與權限)。此電子郵件訊息也可能包含文件相關資訊。此資訊可能包括文件標題及工作流程擁有者的說明。若有與非網站成員之內部使用者相關聯的資訊洩漏考量,管理員可能希望停用 \[當指派工作流程工作給沒有網站存取權的內部使用者時,是否要提醒這些使用者\] 設定。
  • 外部使用者

    不在目錄服務中但獲派已定好格式之 SMTP 電子郵件地址的外部使用者,仍可獲指派工作流程之工作。因為外部使用者很難存取文件,所以 SharePoint Foundation 2010 有 [是否要傳送文件複本給外部使用者的方法,以允許他們參與工作流程] 設定,能夠使用有附加文件的電子郵件,將工作通知傳送給外部使用者。啟用此選項時,工作會指派給工作流程擁有者,而外部使用者可完成工作的方式是傳送電子郵件給擁有者。

    [是否要傳送文件複本給外部使用者的方法,以允許他們參與工作流程] 選項預設為停用。但此項設定在需要外部參與時很有用,例如核准與外部客戶有關的商務文件。啟用此設定 (選取 [是]) 的管理員,必須確認工作流程排程是否支援外部參與者設定。例如,建立外部使用者的工作時,自訂工作流程必須在用於初始化工作之 SPWorkflowTaskProperties 物件的 OnBehalfEmail 屬性中,指定外部電子郵件地址。SharePoint Foundation 2010 有數個內建工作流程支援此設定。

    想要啟用此功能的自訂工作流程開發人員,必須與管理員合作,判斷在外部電子郵件訊息中附加實際文件,是否有資訊洩漏的風險。管理員在啟用此項設定時,必須評估利益與風險。

工作歷程清單及工作流程歷程清單的資訊洩漏

因為工作及歷程清單項目可包含使用者及其對文件執行動作的資料,所以這些項目可能會洩漏機密資訊。例如,促銷的「核准」工作流程,可能會收集組織只想讓工作流程擁有者及每位工作參與者看到的工作回應。

工作及歷程清單是網站的一般清單。因此,根據預設,所有讀者都可以檢視工作及歷程記錄項目。管理員及開發人員必須裁定此資訊不得洩漏,並決定是否要保護工作流程所建立之工作及歷程記錄項目的安全。

有數種方式可以保護這些項目的安全。例如,管理員可以設定清單層級的權限。若是私用資訊發生洩漏問題 (亦即非公開取得資訊,而是特定人員群組才可取得的資訊),管理員可以建立新的工作或歷程清單,然後設定以該群組為目標的清單權限。管理員若不希望任何人在 [工作流程狀態] 頁面中看到歷程事件,可以移除工作流程歷程清單的檢視權限,這份清單即是狀態頁面的資訊提取來源。無權檢視歷程清單原件或清單中任何項目的使用者,在開啟自前述歷程清單提取資料的任何狀態頁面時,會收到「拒絕存取」錯誤。

若需要微調限制,工作流程開發人員可以在建立工作或記錄項目時,逐項設定權限。CreateTask 活動的 SpecialPermissions 屬性,只會授與指定的權限以存取新建的工作。LogToHistoryList 活動沒有這類屬性,所以若要對歷程清單項目逐一設定權限,管理員必須使用 SharePoint Foundation 2010 的物件模型 (OM)。逐項目權限對效能有負面影響,除非必要請勿使用。

工作與記錄項目的處理方式不一定相同。管理員可以混合及配對清單權限及項目層級權限。

工作歷程清單及工作流程歷程清單的詐騙及竄改攻擊

清單若無任何限制,則所有的參與者都可以修改工作及記錄項目。這表示,惡意的使用者可以修改工作說明,提供參與者不正確的指示,或命令參與者按一下惡意的連結。為變更認知的程序結果,惡意的使用者還可以新增錯誤或不正確的歷程事件,或修改歷程事件使其變成錯誤或不正確。

如前文所述,工作及歷程清單都是網站中的一般清單。工作清單或歷程清單預設都沒有權限限制。為免遭到詐騙及竄改攻擊,管理員必須確認已存在的弱點,然後限制對清單欄的存取 (例如,讓易受攻擊的工作說明等欄變成唯讀,只有工作流程在建立項目時才可加以設定),再對清單設定特殊的權限;或是對清單項目設定項目層級的權限。

工作流程歷程清單的安全性問題

工作流程最大的好處,是能夠追蹤處理資訊,顯示處理程序。工作流程歷程清單是此資訊的存放庫,工作流程狀態頁面可在此搜尋與工作流程執行個體有關的資料,也可向使用者提供此資訊。使用者在歷程清單中可以看到其可存取的所有項目。

但因工作流程歷程清單會追蹤資訊,所以使用者可能會以為它可用為事件的稽核線索。但事實並非如此,工作流程歷程記錄不是安全性功能。歷程清單是標準的 SharePoint 清單,用於儲存對所有使用者顯示且沒有特殊權限關聯的事件。根據預設,使用者若有網站的編輯及新增權限,即可修改及新增事件。若要稽核事件,請使用 SharePoint 的稽核記錄功能。只有管理員可以存取此記錄,並不需執行其他工作保護此記錄免受竄改攻擊。

若要加強保護歷程清單,管理員可以限制清單的編輯及新增權限,只允許系統帳戶管理員 (例如工作流程管理員) 及清單管理員新增項目。清單管理員必須有新增權限,才可記錄「終止此工作流程」事件。若限制歷程清單的編輯及新增權限,使用者仍然必須取得檢視權限,才可看到狀態資訊。

適用於宣告式工作流程的使用者模擬步驟類型

工作流程的製作人員 (而不是工作流程起始者) 可使用「使用者模擬步驟」類型,執行宣告式工作流程區段。「宣告式」表示您使用模組建立工作流程,而且不必撰寫任何程式碼即可設定工作流程參數。

在 SharePoint Foundation 2010 中,除非是模擬步驟,否則宣告式工作流程一律在工作流程起始者的使用者的內容中執行。若是模擬步驟,宣告式工作流程會在工作流程相關者的內容中執行。預設的工作流程工作會在工作流程執行時,模擬啟動工作流程的使用者,以遵守 SharePoint 權限。這種安排讓很多項目在 SharePoint Foundation 2010 中相當安全,但會阻礙許多案例,讓高權限等級的工作流程設計者,無法製作強大的工作流程,供權限等級較低的使用者順利完成。

透過安全有限的權限提高形式,網站動作可經由工作流程自動化。如此可減輕 SharePoint 網站管理員的工作負荷。高安全性程序的自動化,在現有動作都已啟用,以模擬工作流程起始者以外人員的發佈及核准案例中很有幫助。

以下為示範「使用者模擬步驟」類型的案例範例:

  • 發佈至安全清單

    Jackie 鎖定她在 SharePoint 網站公開的 Pages 文件庫。她使用 Microsoft SharePoint Designer 2010 設定的「核准」工作流程,提交網站參與者的內容進行核准作業。Jackie 將她的工作流程動作放在模擬步驟中,所以工作流程動作會一直以工作流程作者的身分模擬她 (網站管理員)。

    當 Connie (參與者) 在該網站的 Pages 文件庫中張貼內容草稿,並嘗試發佈文章時,該動作會啟動 Jackie 的「核准」工作流程,開始貼文的審閱及核准作業。在代表 Connie 的工作流程中,工作會傳送給核准者。當核准者審閱及核准後,系統會將該貼文的仲裁狀態設為「核准」,雖然 Connie 沒有核准頁面的權限。

  • 授權給使用者

    Joanne 在 SharePoint Designer 2010 中設定的工作流程,利用使用者模擬動作「新增使用者至群組」授與網站的「設計」權限。因為工作流程使用模擬範圍,所以會一直代 Joanne 執行新增使用者至群組的動作。

    其餘的工作流程會讓參與者參觀網站及完成表單,將其存取要求記錄至清單。

    例如,另有一名使用者 Olivier,在使用者 Connie 記錄要求時收到工作;當他核准該工作時,Connie 會被新增至網站的「設計者」群組,雖然 Olivier 和 Connie 都沒有 Joanne 網站的「管理清單」權限。

  • 範本及取得擁有權

    William 使用 SharePoint Designer 2010 建立了數個工作流程,並將它們儲存為範本供全公司重複使用,但沒多久就離職了。他的帳戶被移除、管理員狀態被撤銷,現在 William 建立的 SharePoint Designer 2010 工作流程,因為缺少 William 的許可而無法完成。

    上層 SharePoint 網站管理員 John 可以介入每個工作流程,卻不必使用 SharePoint Designer 2010 重新建立工作流程。John 取得每一個中斷範本的管理徵狀擁有權。在此之後,安全發佈及存取授權都會出現在 John 名下,而不是 William 名下,除此之外一切不變。

可模擬的工作流程動作如下:

  • 設定內容核准狀態 (如擁有者)

  • 建立清單項目 (如擁有者)

  • 更新清單項目 (如擁有者)

  • 刪除清單項目 (如擁有者)

  • 新增/移除/設定/繼承清單項目權限 (如擁有者)

身為 SharePoint 管理員,您必須考量在 SharePoint 網站的工作流程中併入模擬的可能安全性效果。這不僅套用到新的動作,也會套用到現有的動作,例如更新清單項目。

例如,請試想工作流程中的使用者模擬動作仍會以起始者身分執行的模型。若使用者只對網站集合中的某個網站有管理員權限,該使用者可能惡意建立工作流程,取得網站上層網站的權限。惡意使用者只要說服管理員上傳檔案至惡意使用者網站的文件庫,即可開始工作流程攻擊,危害網站的整個上層網站。

此風險提醒我們要在 SharePoint Designer 2010 中開發「使用者模擬動作一律模擬相關者」限制。「相關者」是建立工作流程與特定清單或網頁關聯性的人員。在 SharePoint Foundation 2010 宣告式工作流程中,相關者與工作流程作者是同一人,亦即使用 SharePoint Designer 2010 建置工作流程的使用者。不過,相關者也可以是任何建立宣告式工作流程範本關聯性的人員。現在的考量是,因「使用者模擬步驟」類型之故,作者/相關者被迫承擔所有事故的責任,因為作者/相關者的認證用於升級中。這需要作者/相關者了解其設計或建立關聯性的工作流程。因此,在建立工作流程的過程中,SharePoint Designer 2010 會在工作流程建立頁面中,向作者/相關者提供有關「使用者模擬步驟」類型的注意訊息。