Business Connectivity Services 的安全性概觀 (SharePoint Server 2010)

 

適用版本: SharePoint Server 2010

上次修改主題的時間: 2016-11-30

本文說明 Microsoft Business Connectivity Services 伺服器與用戶端的安全性架構、支援的安全性環境、連線外部內容類型與外部系統可用的驗證模式、儲存物件上可用的授權選項,以及設定 Microsoft Business Connectivity Services 安全性的一般技術。

本文內容:

  • 關於本文

  • Business Connectivity Services 安全性架構

  • Business Connectivity Services 驗證概觀

  • Business Connectivity Services 權限概觀

  • 保護 Business Connectivity Services 的安全

關於本文

Microsoft Business Connectivity Services 包括用於驗證使用者存取外部系統及設定外部系統資料之權限的安全性功能。Microsoft Business Connectivity Services 的彈性很高,並可從支援的 Microsoft Office 2010 應用程式與網頁瀏覽器內提供各種安全性方法。

Business Connectivity Services 安全性架構

本節說明從網頁瀏覽器及受支援的 Office 2010 用戶端應用程式 (如 Microsoft Outlook 2010) 進行驗證時,Microsoft Business Connectivity Services 的安全性架構。

安全性提示Security Note
建議在用戶端電腦與前端伺服器間的所有通道上使用 Secure Sockets Layer (SSL)。此外也建議您在執行 Microsoft SharePoint Server 2010 的伺服器與外部系統間使用安全通訊端階層或網際網路通訊協定安全性 (IPSec)。唯一的例外是無法在使用 SOAP 1.1 通訊協定傳輸訊息至外部系統,或連線至 SQL 伺服器資料庫時使用 SSL,但可以使用 IPSec 維護資料交換的安全。

從網頁瀏覽器存取外部資料

當使用者從網頁瀏覽器存取外部資料時,涉及三個系統:已登入使用者的用戶端電腦、網頁伺服器陣列及外部系統。

網頁瀏覽器的 BCS 安全性架構

  1. 使用者一般可從網頁瀏覽器或使用網頁組件,與外部清單中的外部資料互動。

  2. 前端伺服器的 BDC 伺服器執行階段使用 Business Data Connectivity Service 的資料,連線至外部系統並在系統上執行作業。

  3. Secure Store Service 可安全地儲存外部系統的認證組,並會建立這些認證組與個人或群組身分識別的關聯。

  4. Security Token Service 是透過發行安全性權杖以回應驗證要求的 Web 服務,其中的安全性權杖由以使用者帳戶資訊為基礎的身分識別宣告所組成。

  5. Microsoft Business Connectivity Services 可將認證傳遞至設定為使用宣告式驗證的資料庫與 Web 服務。如需 Secure Store Service 的概觀,請參閱<規劃 Secure Store Service (SharePoint Server 2010)>。如需宣告式驗證概觀,請參閱<規劃驗證方法 (SharePoint Server 2010)>。

從 Office 用戶端應用程式存取外部資料

從受支援的 Office 用戶端應用程式存取外部資料時,涉及兩個系統:已登入使用者的用戶端電腦及外部系統。當使用者利用 Outlook 2010、Microsoft SharePoint Workspace 及 Microsoft Word 2010 與外部資料互動時,支援此模型。

Office 用戶端應用程式的 BCS 安全性

  1. Outlook 2010 使用者一般是在 [連絡人] 或 [工作] 等 Outlook 項目中使用外部資料。SharePoint Workspace 2010 使用者可離線使用外部清單並與之互動。Word 2010 使用者可在 Word 文件中插入外部資料。

  2. Office Integration Client Runtime 於在用戶端執行的 Microsoft Business Connectivity Services 與受支援的 Office 應用程式之間,作用如同連接器。

  3. 外部資料若設定成使用宣告式驗證,用戶端會與 SharePoint 伺服器陣列上的 Security Token Service 互動,以取得宣告 Token。(如需詳細資訊,請參閱<設定宣告驗證 (SharePoint Server 2010)>。)

  4. 用戶端電腦上的「BDC 用戶端執行階段」會使用來自 Business Data Connectivity Service 的資料,連接並執行外部系統的作業,以執行大量的用戶端存取。

  5. 「用戶端快取」會快取來自 Business Data Connectivity Service 及所需的 Secure Store Service 資訊,以安全連接至外部資料。快取會從 SharePoint 伺服器陣列重新整理,以併入更新的資訊。

  6. 用戶端 Secure Store Service 可讓使用者設定自己的安全性認證。

  7. Microsoft Business Connectivity Services 會將認證傳送到資料庫及宣告覺知服務。

Business Connectivity Services 驗證概觀

使用下列方法類型可設定 Microsoft Business Connectivity Services 將驗證要求傳遞至外部系統:

  • **認證:**通常使用「名稱/密碼」格式。某些外部系統可能還需要其他認證,如個人識別碼 (PIN) 值。

  • **宣告:**可將安全性聲明標記語言 (SAML) 票證傳遞至提供外部資料的宣告感知服務。

針對認證驗證設定 Business Connectivity Services

Microsoft Business Connectivity Services 可透過使用者提供的認證來驗證外部資料的要求。使用者可提供認證以存取外部資料的方法包括:

  • Windows 驗證:

    • Windows 挑戰/回應 (NTLM)

    • Microsoft 交涉

  • 非 Windows 驗證

    • 表單型

    • 摘要

    • 基本

設定 Microsoft Business Connectivity Services 傳遞認證時,解決方案設計人員會將驗證模式資訊新增至外部內容類型。驗證模式提供有關如何處理使用者的傳入驗證要求,以及如何將該要求對應至一組認證,以傳遞至外部內容系統的 Microsoft Business Connectivity Services 資訊。例如,驗證模式可指定使用者認證直接傳遞至外部資料系統;也可指定使用者認證應對應至儲存於 Secure Store Service 中的帳戶,然後再傳遞至外部系統。

您可以使用下列方式,建立驗證模式與外部內容類型的關聯:

  • 當您使用 Microsoft SharePoint Designer 或 Microsoft Visual Studio 2010 建立外部內容類型時。

  • 若外部系統是 Web 服務,您可以使用 Microsoft Business Connectivity Services 管理頁面指定驗證模式。

  • 您可以藉由直接編輯定義外部內容類型的 .XML 檔案,指定驗證模式。

下表說明 Microsoft Business Connectivity Services 的驗證模式:

驗證模式 描述

PassThrough

將已登入使用者的認證傳遞至外部系統。使用者認證必須是外部系統已知的認證。

注意

如果 Web 應用程式未設定為以 Windows 認證進行驗證,則會將 NT Authority/Anonymous 登入帳戶傳遞至外部系統,而不是使用者的認證。

此模式在 Microsoft Business Connectivity Services 管理頁面和 SharePoint Designer 2010 中稱為使用者的身分識別

RevertToSelf

當使用者從網頁瀏覽器存取外部資料時,此模式會忽略使用者認證,並將在 BCS 執行階段執行其上的網頁伺服器上所使用的應用程式集區身分識別帳戶傳送至外部系統。當使用者從 Office 用戶端應用程式存取外部資料時,此模式相當於 PassThrough 模式,因為在用戶端執行的 Microsoft Business Connectivity Services 會在使用者認證下執行。

此模式在 Microsoft Business Connectivity Services 管理頁面和 SharePoint Designer 2010 中稱為 BDC 身分識別

注意

根據預設不會啟用 RevertToSelf 模式。您必須使用 Windows PowerShell 啟用 RevertToSelf 模式,才可以建立或匯入使用 RevertToSelf 的模型。如需詳細資訊,請參閱 RevertToSelf 驗證模式。主控環境不支援 RevertToSelf 模式。

WindowsCredentials

在外部 Web 服務或資料庫中,此模式使用 Secure Store Service 將使用者認證對應至外部系統上的一組 Windows 認證。

此模式在 Microsoft Business Connectivity Services 管理頁面和 SharePoint Designer 2010 中稱為模擬 Windows 身分識別

Credentials

在外部 Web 服務中,此模式使用 Secure Store Service 將使用者認證對應至非 Windows 來源所提供之用於存取外部資料的一組認證。使用此模式時,Web 服務應使用基本或摘要式驗證。

重要

為協助保留此模式的安全性,建議使用 Secure Sockets Layer (SSL) 或網際網路通訊協定安全性 (IPSec),保護 Microsoft Business Connectivity Services 與外部系統之間連線的安全性。

此模式在 Microsoft Business Connectivity Services 管理頁面和 Office SharePoint Designer 中稱為模擬自訂身分識別

RDBCredentials

在外部資料庫中,此模式使用 Secure Store Service 將使用者認證對應至非 Windows 來源所提供的一組認證。為協助保留此模式的安全性,建議使用 Secure Sockets Layer (SSL) 或 IPSec,保護 Microsoft Business Connectivity Services 與外部系統之間連線的安全性。

此模式在 Microsoft Business Connectivity Services 管理頁面和 Office SharePoint Designer 中稱為模擬自訂身分識別

DigestCredentials

在 WCF Web 服務中,此模式使用 Secure Store Service 將使用者的認證對應至使用摘要驗證的認證集。

此模式在 Microsoft Business Connectivity Services 管理頁面和 SharePoint Designer 2010 中稱為模擬自訂身分識別 - 摘要

下圖說明使用認證時的 Microsoft Business Connectivity Services 驗證模式。

Business Connectivity Services 驗證

  • 在 PassThrough (使用者身分識別) 模式 (A) 中,會將已登入使用者的認證直接傳遞至外部系統。

  • 在 RevertToSelf (BDC 身分識別) 模式 (B) 中,會以執行 Microsoft Business Connectivity Services 處理序帳戶之認證,取代使用者的登入認證,然後將這些認證傳遞至外部系統。

  • 有三種模式會使用 Secure Store Service:WindowsCredentials (模擬 Windows ID)、RdbCredentials (模擬自訂 ID) 及 Credentials。這些模式會將使用者認證對應至外部系統的一組認證,再由 Microsoft Business Connectivity Services 將這些認證傳遞至外部系統。解決方案管理員可以選擇將每一位使用者的認證對應至外部系統上的專用帳戶,或是將一組經過驗證的使用者對應至單一群組帳戶。

針對宣告式驗證設定 Business Connectivity Services

Microsoft Business Connectivity Services 可根據傳入的安全性權杖,進行外部資料的存取,並可將安全性權杖傳遞至外部系統。安全性權杖由一組使用者的相關身分識別宣告所組成,而使用安全性權杖進行驗證的作業稱為「宣告式驗證」。SharePoint Server 包括發行安全性權杖的 Security Token Service。

下圖說明 Security Token Service 與 Secure Store Service 在宣告式驗證中共同作業的方式:

在 BCS 中宣告驗證

  1. 使用者嘗試在針對宣告式驗證所設定的外部清單上執行作業。

  2. 用戶端應用程式會向 Secure Token Service 要求安全性權杖。

  3. Secure Token Service 會利用要求使用者身分識別的方式,發行包含一組宣告與一個目標應用程式識別碼的安全性權杖。Secure Token Service 之後會將此安全性權杖傳回用戶端應用程式。

  4. 用戶端會將安全性權杖傳遞至 Secure Store Service。

  5. Secure Store Service 會評估安全性權杖,並使用目標應用程式識別碼傳回套用至外部系統的一組認證。

  6. 用戶端會接收認證,並將認證傳遞至外部系統,使作業 (如接收或更新外部資料) 得以執行。

Business Connectivity Services 權限概觀

Microsoft Business Connectivity Services 中的權限會將個別帳戶、群組帳戶或宣告,與中繼資料儲存區之物件的一或多個權限等級建立關聯。藉由正確設定 Microsoft Business Connectivity Services 之物件的權限,即有助於啟用解決方案以安全地合併外部資料。規劃權限策略時,建議您將特定權限授與每一位需要的使用者或群組,如此一來,這些認證即會提供執行所需工作的最低權限。

警告

正確設定 Microsoft Business Connectivity Services 中的權限是整體安全性策略的一環。保護外部系統資料的安全亦同等重要。執行此作業的方式取決於外部系統的安全性模型與功能,不在本文討論範圍內。

注意

Business Connectivity Services 使用中繼資料物件的權限及外部系統的權限來決定授權規則。例如:安全性修剪器可避免使用者搜尋結果中出現外部資料。然而,如果使用者以某種方式探索已修整之外部資料的 URL,且使用者有中繼資料物件及外部系統的必要權限,則可存取外部資料。預防使用者存取外部資料的正確方法為在 Business Connectivity Services 及外部系統中設定適當的權限。

可設定權限的對象為何?

每一個 Business Data Connectivity Service 執行個體 (或者,在主控情況下為每一個磁碟分割) 皆包含中繼資料儲存區,其內含針對該儲存區用途已定義的所有模型、外部系統、外部內容類型、方法及方法執行個體。下圖描述這些物件所在階層:

中繼資料儲存區階層

注意

在上一個階層圖中,括號中的標籤表示以 Microsoft Business Connectivity Services 中繼資料結構描述定義的物件名稱。不在括號中的標籤則表示 Business Data Connectivity Service 使用者介面中會出現的各物件名稱。如需 Microsoft Business Connectivity Services 中繼資料結構描述的完整討論,以及多項部署工作的逐步解說,請參閱 Microsoft SharePoint 2010 軟體開發套件(可能為英文網頁) (https://go.microsoft.com/fwlink/?linkid=166117&clcid=0x404)(可能為英文網頁)。

中繼資料儲存區中的物件階層會決定可傳播其權限至其他物件的物件。在圖中,可設定及選擇性傳播權限的每個物件會以實線表示,而從其父物件取得權限的每個物件則會以虛線表示。例如,圖中顯示藉由指派權限給「外部系統」(LobSystem),可保護系統的安全,但無法直接指派權限給「動作」。無法指派權限的物件會從其父物件取得權限。例如,「動作」會從其父項「外部內容類型」(實體) 取得權限。

安全性提示Security Note
傳播中繼資料儲存區物件的權限之後,即會以傳播物件的權限取代該項目所有子項的權限設定。例如,若從「外部內容類型」傳播權限,該「外部內容類型」的所有「方法」與「方法執行個體」均會接收到這些新的權限。

可為中繼資料儲存區及其所包含之物件,設定四種權限等級:

  • 編輯

    安全性提示Security Note
    「編輯」權限應該視為高權限。惡意使用者可利用「編輯」權限來竊取認證或損毀伺服器陣列。建議在生產系統中,僅提供「編輯」權限給您確認具有管理員層級的使用者。
  • 執行

  • 可在用戶端選取

  • 設定權限

下表定義這些權限在各種可設定之物件上的意義。

物件 定義 「編輯」權限 「執行」權限 「可在用戶端選取」權限 「設定權限」權限

Metadata store

儲存於 Business Data Connectivity Service 中的 XML 檔案集合,其各自包含模型、外部內容類型及外部系統的定義。

使用者可建立新的外部系統。

雖然沒有中繼資料儲存區本身的「執行」權限,但可使用此設定將「執行」權限傳播至中繼資料儲存區中的子物件。

雖然沒有中繼資料儲存區本身的「可在用戶端選取」權限,但可使用此設定將這些權限傳播至中繼資料儲存區中的子物件。

使用者可從中繼資料儲存區傳播權限,以設定中繼資料儲存區中任何物件的權限。

Model

XML 檔案,其包含多組針對一或多個外部內容類型及其相關外部系統的描述,以及環境特有的資訊,如驗證屬性。

使用者可編輯模型檔案。

「執行」權限不適用於模型。

「可在用戶端選取」權限不適用於模型。

使用者可設定模型的權限。

External system

可模式化受支援之資料來源的中繼資料定義,例如資料庫、Web 服務或 .NET 連線組件。

使用者可編輯外部系統。設定此權限還會在 SharePoint Designer 中顯示外部系統及其所包含的所有外部系統執行個體。

雖然沒有外部系統本身的「執行」權限,但可使用此設定將「執行」權限傳播至中繼資料儲存區中的子物件。

雖然沒有外部系統本身的「可在用戶端選取」權限,但可使用此設定將這些權限傳播至中繼資料儲存區中的子物件。

使用者可設定外部系統的權限。

External content type

可重複使用的中繼資料集合,其定義一組一或多個外部系統的資料、該資料可用的作業,以及與該資料相關的連線資訊。

雖然沒有外部內容類型本身的「編輯」權限,但可使用此設定將這些權限傳播至中繼資料儲存區中的子物件。

使用者可執行外部內容類型的作業。

使用者可建立外部內容類型的外部清單。

使用者可設定外部內容類型的權限。

Method

與外部內容類型相關的作業。

使用者可編輯方法。

雖然沒有方法本身的「執行」權限,但可使用此設定將「執行」權限傳播至中繼資料儲存區中的子物件。

沒有方法的「可在用戶端選取」權限。

使用者可設定方法的權限。

Method instance

針對特定方法,說明如何透過特定的一組預設值使用方法。

使用者可編輯方法執行個體。

使用者可執行方法執行個體。

沒有方法執行個體的「可在用戶端選取」權限。

使用者可設定方法執行個體的權限。

Business Data Connectivity Service 的特殊權限

除了上述用於設定權限的一般功能,Business Data Connectivity Service 還提供一組特殊權限:

  • 伺服器陣列管理員具有 Business Data Connectivity Service 的完整權限。這對維護或修復服務的執行個體而言是必要的。但請注意,伺服器陣列管理員並不具有中繼資料儲存區中任何物件的執行權限;如需此權限,必須由 Business Data Connectivity Service 執行個體的管理員明確授與。

  • Windows PowerShell 使用者是伺服器陣列管理員,且可在 Business Data Connectivity Service 上執行命令。

  • 前端伺服器的應用程式集區帳戶具有與伺服器陣列管理員相同的 Business Data Connectivity Service 權限。此權限對產生以 Microsoft Business Connectivity Services 為基礎的部署套件而言是必要的。

  • 在大多數情況下,應授與 SharePoint Designer 使用者整個中繼資料儲存區的下列權限:編輯、執行及可在用戶端選取。而不應授與 SharePoint Designer 使用者「設定權限」權限。您可以視需要將 SharePoint Designer 使用者的權限限制為中繼資料儲存區的子集合。

    警告

    為協助確保解決方案安全,應使用 SharePoint Designer 在測試環境中建立外部內容類型,您可以在此環境中隨意指派「編輯」權限。將經過測試的解決方案部署至實際執行環境時,請移除編輯權限,以協助保護外部資料的完整性。

一般工作及其相關權限

本節說明 Business Data Connectivity Service 中的一般工作,以及執行這些工作的必要權限。

工作 權限

在中繼資料儲存區中建立新的物件

若要建立新的中繼資料物件,使用者必須具有父項中繼資料物件的編輯權限。例如,若要在外部內容類型中建立新的方法,使用者必須具有此外部內容類型的權限。如需中繼資料儲存區中各物件之間的父子關聯,請參閱本文稍早的圖例。

從中繼資料儲存區刪除物件

若要刪除中繼資料物件,使用者必須具有該物件的編輯權限。若要刪除物件及其所有子物件 (例如刪除外部內容類型及其所有方法),還需具有所有子物件的編輯權限。

新增外部內容類型至模型

若要將外部內容類型新增至模型,使用者必須具有該模型的編輯權限。

匯入模型

若要將模型匯入中繼資料儲存區,使用者必須具有該中繼資料儲存區的編輯權限。若未指派該模型的明確權限,則會對匯入的使用者授與該模型之編輯權限。

匯出模型

若要從中繼資料儲存區匯出模型,使用者必須具有該模型及模型內含之所有外部系統的編輯權限。

產生部署套件

部署套件由前端伺服器所使用的應用程式集區帳戶所產生。此帳戶具有中繼資料儲存區的完整權限,因此可執行此工作。

設定中繼資料儲存區的初始權限。

第一次建立 Business Data Connectivity Service 的執行個體時,其中繼資料儲存區會是空的。伺服器陣列管理員具有該儲存區的完整權限,且可設定初始權限。

從使用中伺服器陣列產生部署套件。

Business Data Connectivity Service 應用程式可跨伺服器陣列共用。為了從使用中伺服器陣列產生部署套件 (伺服器陣列連線至遠端位置以使用 Business Data Connectivity Service 應用程式),使用中伺服器陣列的前端伺服器所使用的應用程式集區帳戶,必須具有發佈伺服器陣列之中繼資料儲存區的權限。若需如何指派應用程式集區帳戶之權限的詳細資訊,請參閱<設定權限以讓使用中伺服器陣列產生部署套件>。

保護 Business Connectivity Services 的安全

本節討論用於協助保護 Business Connectivity Services 安全的其他方法

服務帳戶

為了安全隔離,Business Data Connectivity Service 應用程式及前端伺服器不應使用相同的服務帳戶。

伺服器對伺服器通訊

保護 Business Data Connectivity Service 應用程式及外部系統間的通訊安全,可協助確保機密資料不洩漏。您需要使用加密通訊通道,來保護在執行 SharePoint Server 2010 的伺服器及外部系統間傳送的資料。網際網路通訊協定安全性 (IPsec) 也是一個用來保護通訊的方法。至於要選擇哪個方法,則取決於您要保護的特定通訊通道及對您組織來說最適合的優缺利弊考量。

使用 FileBackedMetadataCatalog 的應用程式

基於安全因素,SharePoint Server 2010 的 RevertToSelf 驗證模式會預設為停用。不過,這不能避免使用 FileBackedMetadataCatalog 類別的應用程式匯入模型,及執行使用 RevertToSelf 驗證的呼叫。透過授與應用程式集區帳戶的權限,可能會導致使用者的權限提升。您應該檢閱所有應用程式,確定其不使用 FileBackedMetadataCatalog 類別及 RevertToSelf 驗證後,再將其安裝到生產系統上。