規劃 Duet Enterprise 的安全性

 

適用版本: Duet Enterprise for Microsoft SharePoint and SAP

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

本文討論如何規劃安全的 Duet Enterprise for Microsoft SharePoint 及 SAP 部署和作業。其提供 Duet Enterprise 安全性架構;說明常見 Duet Enterprise 案例的安全性設定策略;說明如何根據 SAP 角色設定 Duet Enterprise 中的權限;說明如何協助實作 Duet Enterprise 環境之各種元素的安全性;以及說明您必須具備以管理 Duet Enterprise 安全性的角色和帳戶。

重要

本文討論 Microsoft SharePoint Server 伺服器陣列內容中的 Duet Enterprise 安全性規劃。如需 SAP 環境內之 Duet Enterprise 安全性的相關討論,請參閱 SAP 支援入口網站 (https://go.microsoft.com/fwlink/?linkid=205294&clcid=0x404) 上的《SAP Duet Enterprise 安全性指南》。在 SAP 支援入口網站的左窗格中,依序展開 SAP Business Suite 應用程式、Duet Enterprise、Duet Enterprise 1.0,然後下載適用的指南。

SharePoint Server 中的 Duet Enterprise 安全性建立在 SharePoint Server 2010 的安全性功能上。除了本文,建議檢閱說明如何規劃及實作一般 SharePoint Server 安全性的內容。如需詳細資訊,請參閱安全性及驗證資源中心(可能為英文網頁) (https://go.microsoft.com/fwlink/?linkid=196792&clcid=0x404)(可能為英文網頁)。使用 Microsoft Business Connectivity Services 可實作 SharePoint Server 與 SAP 系統之間的大部分通訊,以及 Duet Enterprise 驗證和授權。因此,也建議檢閱 Microsoft Business Connectivity Services 的相關內容。如需 Microsoft Business Connectivity Services 安全性及相關區域的資訊,請參閱 Business Connectivity Services 資源中心(可能為英文網頁) (https://go.microsoft.com/fwlink/?linkid=190217&clcid=0x404)(可能為英文網頁)。

本文件內容:

  • Duet Enterprise 安全性架構

  • 設定常見 Duet Enterprise 驗證案例的安全性

  • 使用 SAP 角色授與使用者存取 SharePoint 物件的權限

  • UNRESOLVED_TOKEN_VAL(MOSS_2nd_ NoVer) 建議的 Duet Enterprise 安全性作法

Duet Enterprise 安全性架構

在 Duet Enterprise 中,儲存在 SAP 系統中的商務程序和資料會在 SharePoint Server 2010 網站及 Microsoft Outlook 和 SharePoint Workspace 等 Microsoft Office 2010 套裝軟體 用戶端中呈現。但是,用以存取 SharePoint Server 2010 和 Microsoft Office 2010 套裝軟體 用戶端的使用者帳戶,無法直接用以存取 SAP 中的資訊。Duet Enterprise 安全性架構透過設定 SharePoint Server 2010 隨附的 Microsoft Business Connectivity Services Windows Communications Foundation (WCF) 連接器來解決這個問題。此 WCF 連接器與 SharePoint Server 2010 中的 Security Token Service 及 SAP 系統中的 SAP NetWeaver 互動。此實作的目標可將 SharePoint Server 2010 中的使用者識別對應至 SAP 系統中的使用者帳戶,讓登入 SharePoint Server 2010 網站的使用者可以存取儲存在 SAP 系統中的外部資料,而不需要重新登入 SAP 系統。

下圖顯示 Duet Enterprise 中之驗證運作方式的高階檢視,並顯示 SharePoint 使用者在 SharePoint Server 中從 Duet Enterprise 網站存取 SAP 資訊時的步驟。

Duet Enterprise 驗證

  1. SharePoint 使用者識別 (與登入使用者相關聯的權杖) 傳送至 Microsoft Business Connectivity Services Windows Communication Foundation 連接器。

  2. 連接器將 SharePoint 使用者識別傳送至 SharePoint Security Token Service。

  3. SharePoint Security Token Service 驗證使用者,並修改權杖以識別登入 SAP 系統的 SharePoint 使用者。然後,SharePoint Security Token Service 將權杖傳回 WCF 連接器。

  4. 接著系統將修改後的權杖傳送至 SOAP 要求封包中的 SAP NetWeaver。

  5. 由於在部署期間 SAP NetWeaver 與 Security Token Service 之間會建立信任關係,因此 SAP NetWeaver 可以使用此權杖查詢對應至權杖中所識別之使用者的 SAP 使用者帳戶。

  6. 對應至權杖中所識別之使用者的 SAP 使用者帳戶傳回 SAP NetWeaver。

  7. SAP NetWeaver 使用 SAP 使用者帳戶要求 SAP 系統資訊的存取權;如果使用者帳戶有權存取該資訊,則會將要求的資訊傳送至 SAP NetWeaver。

  8. SAP NetWeaver 將要求的資訊當做 SOAP 回應傳送至 Microsoft Business Connectivity Services Windows Communications Foundation (WCF) 連接器。

  9. Microsoft Business Connectivity Services WCF 連接器將此資訊傳遞給 SharePoint 使用者。

注意

Duet Enterprise 可以使用以 SAP 角色為基礎的授權。如需詳細資訊,請參閱使用 SAP 角色授與使用者存取 SharePoint 物件的權限。

SAP 管理員一開始會將 SAP 系統中的使用者帳戶對應至 SharePoint 系統中的帳戶。如需此程序的詳細資訊,請參閱《SAP Duet Enterprise 安全性指南》。

提示

常見 Duet Enterprise 驗證案例

本節說明兩個最常見的 Duet Enterprise 案例及每個案例的建議驗證設定。區分這些案例的主要因素包括:

  • 根據 Duet Enterprise 會實作單一解決方案或多個解決方案。

  • 是否需要安全通訊端階層加密通訊通道。

如上一節所述,Duet Enterprise 的安全性跨越 SAP 系統及 SharePoint Server 2010 系統中的多個角色和帳戶。此整合式驗證架構會透過宣告式驗證及 Windows 驗證實作,且本節所述的兩個案例都需要這些方法。

重要

本版 Duet Enterprise 不支援表單型驗證。

提示

當您建立包含 Duet Enterprise 解決方案的 Web 應用程式時,會執行這些案例中所述的大部分設定步驟。如需檢閱設定 Web 應用程式的步驟,請參閱建立 Web 應用程式 (SharePoint Server 2010) (https://go.microsoft.com/fwlink/?linkid=202008&clcid=0x404)。

案例:使用 Microsoft Windows 驗證提供者的企業內部網路

這是最典型的 Duet Enterprise 驗證案例。例如,組織可能在遠端 SAP 系統中保留其員工資料,如工時卡、薪資及福利資訊。所有使用者會透過公司的 Duet Enterprise 內部網路入口網站存取此資料。所有員工使用相同的 Active Directory 網域服務提供者存取入口網站。

此案例可以設定如下:

Web 應用程式數目

一個

區域

一個區域:內部網路

驗證

宣告式驗證

宣告驗證類型

Windows 驗證

安全通訊端階層?

案例:內部網路中的兩個 Duet Enterprise 解決方案

在大型企業中,兩個工作群組可以共用相同的 SAP 系統,例如用以與其產品資訊資料庫互動。每個工作群組可以透過其本身的 Duet Enterprise 解決方案與資料互動。SAP 系統中的資訊對此企業而言並非敏感資訊。因此,若要提升 Duet Enterprise 網站的效能,請不要在此案例中使用安全通訊端階層。

此案例可以設定如下:

Web 應用程式數目

兩個

區域

一個 Web 應用程式一個區域:內部網路

驗證

宣告式驗證

宣告驗證類型

兩個 Web 應用程式中的 Windows 驗證

安全通訊端階層?

使用 SAP 角色存取 SharePoint 物件

在企業中,使用者執行的工作通常與使用者的角色相關,所以使用者是否應該具備物件的特定權限等級,通常取決於使用者角色本身。因此,角色有助於將權限指定給清單項目、網站及文件等物件。

在 SAP NetWeaver 中,使用者會獲派一或多個角色,例如「業務代表」、「專案經理」、「高階主管」及「人資專員」。SAP 角色可以很廣泛 (例如「所有銷售經理」),也可以很侷限 (例如「東區銷售經理」)。在 Duet Enterprise 中,這些 SAP 角色可以用以存取 SharePoint Server 中的物件。可在 SharePoint Server 中套用權限的所有物件,都可以透過 SAP 角色獲派權限,包括與 Duet Enterprise 直接相關的物件 (例如使用外部內容類型的報表、外部清單及動作),以及任何一般及受到保護的 SharePoint Server 物件 (例如網站或文件庫)。將物件的權限授與角色之後,任何指定以該角色的使用者即會具備使用該物件的權限。

使用者僅可獲派其在 SAP NetWeaver 中的角色。Duet Enterprise 使用 Duet Enterprise 設定檔同步處理計時器工作功能將 SAP 系統中的使用者角色指派整合至 SharePoint Server 中,並使用 Duet Enterprise 宣告提供者協助管理 SharePoint Server 中安全物件之以角色為基礎的權限。

在角色同步處理期間,系統會使用 Microsoft Business Connectivity Services 將一組 SAP 使用者匯入 SharePoint 使用者設定檔儲存。指定給每位 SAP 使用者的所有 SAP 角色會列於使用者設定檔儲存中。角色同步處理會從 SharePoint Server 連線至 SAP 端名為「SAPUsersService」的外部系統。此外部系統接著會將使用者對角色對應傳送至 SharePoint 使用者設定檔儲存。角色同步處理一般會當做部署後步驟,使用 Duet Enterprise 設定檔同步處理計時器工作依設定間隔完成。您可以指定同步處理角色的頻率及每次匯入的使用者人數。

完成角色同步處理之後,使用者可以將 SAP 角色權限指定給 SharePoint Server 中的物件。將角色指定給物件的方式,是透過選取群組及個人的相同人員選擇介面。如圖所示,Duet Enterprise 宣告提供者使用 Business Data Connectivity Service 與 SAP 系統進行通訊 (1 和 2),以收集並列出使用者可以在「人員選擇」中選取的所有 SAP 角色 (3)。接著,使用者可以將這些角色指定給可設定權限的任何物件 (4)。

在人員選擇器中使用 Duet Enterprise 角色

將清單項目或文件等物件的權限授與 SAP 角色之後,使用者即有權根據其角色使用物件。如圖所示,當使用者第一次登入 SharePoint 網站時 (1),該使用者會獲發由 Duet Enterprise 宣告提供者所增強的 SAML 宣告 Token (2),該宣告提供者透過將使用者的 SAP 角色新增至 SAML Token,以與使用者設定檔儲存進行通訊 (3 和 4)。接著,如果其中一位使用者的角色有權存取物件,SharePoint Server 即可授與使用者該物件的權限 (5 和 6)。

Duet Enterprise 中以角色為基礎的權限

注意

當 SAP 系統中的使用者角色變更時,需要一段時間才能傳播變更至 SharePoint 系統,因此可能會暫時無法根據使用者的新角色授權使用者。您可以在 SharePoint 伺服器陣列中的每部前端伺服器上執行 iisreset 命令,以加速傳播角色變更的程序。此命令會清除角色資訊的快取,並以任何更新的角色指派重新整理。

SharePoint Server 建議的 Duet Enterprise 安全性作法

Duet Enterprise 會部署在 SharePoint Server 伺服器陣列及 SAP NetWeaver 系統上。本節包含如何設定共用服務、Web 應用程式、豐富型用戶端、通訊通道及 SharePoint 伺服器陣列中的其他元素,以改善 Duet Enterprise 的安全性之通用準則。

Security Token Service

Security Token Service 可驗證 SharePoint 使用者,然後修改其 Token 以供 SAP 系統識別 (請參閱<Duet Enterprise 安全性架構>);也會將使用者的角色新增至 Token,以支援以角色為基礎的授權 (請參閱<使用 SAP 角色授與使用者存取 SharePoint 物件的權限>)。

基於效能考量,會快取 Security Token Service 權杖,並且每隔 24 小時會清除此快取。從快取清除權杖之後,Security Token Service 會在下次需要此權杖時重新予以建立。Security Token Service 快取只會每天清除一次,以防止服務建立權杖的頻率太頻繁,而影響系統效能。

快取 Token 會影響角色資訊在 Token 中的更新頻率,因為角色資訊只會在建立或重新建立 Token 時新增。因此,使用者的 SAP 角色在 SAP 系統中變更之後,最多可能會有 24 小時的延遲,才可在代表 SharePoint Server 之使用者的 Token 中反映該資訊。在此延遲期間,根據使用者的角色,使用者可能無法存取其具備權限的某些資料、文件或網站。

Duet Enterprise 管理員及解決方案架構師必須決定是否要保持最新的使用者對角色對應,以在維護良好的 Duet Enterprise 效能與提供必要的物件存取權之間做出最佳取捨。一般建議不要變更預設的 24 小時快取時間:通知使用者角色的變更可能需要兩天才能在 SharePoint 系統內傳播。但是,如果保持最新的角色資訊對解決方案很重要,則可以使用 Windows PowerShell 設定角色快取間隔。

Secure Store Service

Secure Store Service 可安全地儲存 SharePoint 認證與外部系統所需的認證之間的對應。在 Duet Enterprise 中,Secure Store Service 僅會用在部署期間,亦即使用 DuetConfig.exe 公用程式將代表 SAP 物件的 Microsoft Business Connectivity Services 模型匯入 SharePoint Server 時。

Secure Store Service 的管理員必須產生加密金鑰以初始化服務,再匯入 BDC 模型。如需如何產生加密金鑰的詳細資訊,請參閱設定 Secure Store Service (SharePoint Server 2010) (https://go.microsoft.com/fwlink/?linkid=205440&clcid=0x404) 中的<產生新的加密金鑰>一節。

Business Data Connectivity Service

在 Duet Enterprise 中,Microsoft Business Connectivity Services 提供 Microsoft SharePoint Server 與 SAP 環境之間的通訊橋接器,讓使用者可以連線至 SAP 物件 (例如銷售連絡人、工作及客戶) 並與其互動。物件會在 Microsoft Business Connectivity Services 中繼資料儲存區中建立模型,且 Microsoft Business Connectivity Services 中的權限會將個別帳戶、群組帳戶或宣告,與中繼資料儲存區中某個物件的一或多個權限等級建立關聯。如需如何對中繼資料儲存區中的模型、外部系統、外部內容類型、方法及方法執行個體設定權限的詳細資訊,請參閱 Business Connectivity Services 的安全性概觀 (SharePoint Server 2010) (https://go.microsoft.com/fwlink/?linkid=205679&clcid=0x404)。

如<使用 SAP 角色授與使用者存取 SharePoint 物件的權限>中所述,Duet Enterprise 提供其他權限功能。SAP 角色可以用以授與權限,以存取 SharePoint Server 中的物件,且可在 SharePoint Server 中套用權限的所有物件會透過 SAP 角色保護。

您可以使用 SAP 角色協助實作在 Microsoft Business Connectivity Services 中建立模型之 SAP 物件的安全性。如此一來,即可確保不具備必要角色的使用者無法存取與其職責無關的物件。例如,您可以設定僅 SAP_SALES_REP 角色可以存取及操作所有定義客戶的外部內容類型。

警告

Duet Enterprise 隨附的某些模型具有特定權限需求,因此無法透過角色保護。例如,在 Duet Enterprise 角色同步處理所使用的 SAPRoles 模型中,特殊群組「所有已驗證的使用者」必須獲派 SAPRoles 模型中外部內容類型之方法執行個體的「執行」權限。

User Profile Service

Duet Enterprise 使用者及其角色會與 SAP 系統同步處理,並儲存在 SharePoint Server User Profile Service 的設定檔儲存中。Duet Enterprise 與 SAP 系統之間的使用者對角色對應同步處理程序會透過 DuetConfig 公用程式啟動。執行 DuetConfig 啟動此工作之前,執行 DuetConfig 的伺服器陣列管理員必須取得 User Profile Service 的完全控制權限。

在某些 Duet Enterprise 部署中,會由一個 SharePoint 伺服器陣列的集中式 User Profile Service,為主控 Duet Enterprise 解決方案的其他多個 SharePoint 伺服器陣列提供角色同步處理。在這些「同盟」設定中,每個使用集中式 User Profile Service 的伺服器陣列會有一個 Security Token Service。若要在使用集中式 User Profile Service 的伺服器陣列中進行角色同步處理,該伺服器陣列之 Security Token Service 的應用程式集區帳戶必須具備集中式 User Profile Service 的讀取權限。

Office 用戶端應用程式

Office 用戶端應用程式的 Duet Enterprise 驗證需要與在 SharePoint Server 中執行的 Security Token Service 互動。因此,即使從 Office 用戶端應用程式連線至外部 SAP 系統,也需要 Office 用戶端應用程式與 SharePoint Server 之間的通訊。由於 Duet Enterprise 使用 Windows 驗證,因此可以使用 http:// 位址安全地實作 Office 用戶端應用程式與 SharePoint Server 之間的通訊,而不需要 https:// 位址。

若要支援 SharePoint Server 的離線功能,還需要 Office 用戶端應用程式與 SAP 系統之間的通訊 (這些連線會在可存取 SAP 系統之可用外部資料的模型中定義)。為協助確保與 SAP 系統存取權相關的安全性,Office 用戶端與 SAP 系統之間的通訊應該透過安全通訊端階層及 https:// 位址來實作。

報表路由

Duet Enterprise 報表功能結合 SAP 報表產生的功能與 SharePoint Server 文件管理功能,可讓使用者從 SharePoint Server 網站中要求 SAP 報表。這些報表會在 SAP 系統上產生,然後正確地加以路由,並儲存在 SharePoint Server 文件庫內,以供授權的使用者檢視。以 Duet Enterprise 為基礎的解決方案可以視需要將報表整合到許多網站中。特定 Web 應用程式中之網站的所有報表會透過 OBAFileReceiver Web 服務路由傳送至該 Web 應用程式中的正確文件庫,將 Web 應用程式設定用於報表之後,此服務即會連線至該 Web 應用程式。

設定報表 (https://go.microsoft.com/fwlink/?linkid=205681&clcid=0x404) 中所述,您應該設定主控報表的任何 Web 應用程式,將 Web 應用程式擴充至可讓服務安全執行的其他區域。此區域必須具有下列特性:

  • 必須使用安全通訊端階層 (SSL)

  • 必須使用宣告驗證

  • 必須使用 Windows 驗證和基本驗證

  • 必須繫結至 SAP 系統信任的憑證

以角色為基礎的權限

如<使用 SAP 角色存取 SharePoint 物件>中所述,Duet Enterprise 使用 Duet Enterprise 宣告提供者協助管理 SharePoint Server 中安全物件之以角色為基礎的權限。如果在解決方案中使用宣告提供者,則會增加執行特定作業所需的時間。若要將 Duet Enterprise 宣告提供者的效能提升到最大,建議您執行下列動作:

  1. 設定預設不使用 Duet Enterprise 宣告提供者。當您執行這項操作時,與 Duet Enterprise 無關的 Web 應用程式不會查詢 Duet Enterprise 宣告提供者。若要設定預設不使用宣告提供者,請使用下列 Windows PowerShell 指令碼:

    $myClaimPrMgr = Get-SPClaimProviderManager
    $TCP = $myClaimPrMgr.GetClaimProvider("DuetEnterpriseClaimsProvider")
    $TCP.IsUsedByDefault = False
    $myClaimPrMgr.Update()
    
  2. 將 Duet Enterprise 宣告提供者關聯至屬於 Duet Enterprise 解決方案的每個 Web 應用程式。若要執行這項操作,請對屬於解決方案的每個 Web 應用程式使用下列 Windows PowerShell 指令碼:

    $web = Get-SPWebApplication "http://WebApplication"
    $iis = $web.GetIisSettingsWithFallback([Microsoft.SharePoint.Administration.SPUrlZone]::Default)
    $iis.ClaimsProviders.Add("DuetEnterpriseClaimsProvider")
    $web.Update()
    

    在上一個範例指令碼中,以 Web 應用程式的 URL 取代 "http://WebApplication"。

    若要移除 Web 應用程式與 Duet Enterprise 宣告提供者的關聯,請使用下列指令碼:

    $web = Get-SPWebApplication "http://Webapplication"
    $iis = $web.GetIisSettingsWithFallback([Microsoft.SharePoint.Administration.SPUrlZone]::Default)
    $iis.ClaimsProviders.Remove("DuetEnterpriseClaimsProvider")
    $web.Update()
    

    在上一個範例指令碼中,以 Web 應用程式的 URL 取代 "http://Webapplication"。

重要

在 SAP NetWeaver 中,SharePoint 計時器工作網域帳戶應該對應至有權查詢使用者角色指派的 SAP 使用者。