Excel Services 的身分識別委派 (SharePoint Server 2010)

 

適用版本: Excel Services, SharePoint Server 2010

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

在此案例中,您會將 Excel Services 服務應用程式新增至 SharePoint Server 環境,以及設定 Kerberos 限制委派允許服務重新整理外部 SQL Server 資料來源中工作表內的資料。

案例相依性

若要完成此案例,您需要完成下列文章所述:

設定檢查清單

設定區域 描述

Active Directory 設定

建立 Excel Services 服務帳戶

在 Excel Services 服務帳戶上設定 SPN

為執行 Excel Services 的伺服器設定 Kerberos 限制委派

為 Excel Services 服務帳戶設定 Kerberos 限制委派

SharePoint Server 設定

在 Excel Services 伺服器上啟動對 Windows Token 服務的宣告

在 Excel Services 伺服器上啟動 Excel Services 服務執行個體

建立 Excel Services 服務應用程式和 Proxy

設定 Excel Services 信任的檔案位置和驗證設定

驗證 Excel Service 限制委派

建立文件庫以裝載測試活頁簿

建立測試 SQL 資料庫和測試表格

建立具有 SQL 資料連線的測試 Excel 活頁簿

發佈活頁簿至 SharePoint Server 並重新整理資料連線

案例環境詳細資料

Kerberos 限制委派路徑

案例環境圖表

在此案例中,會設定 SharePoint Server Excel Services 服務帳戶,以進行 SQL Server 服務的 Kerberos 限制委派。

注意

在此案例中,我們會將「對 Windows Token 服務的宣告」(C2WTS) 設定成使用專用服務帳戶。如果您還是將 C2WTS 設定成使用 [本機系統],則需要對執行 C2WTS 和 Excel Services 之電腦的電腦帳戶設定限制委派。

SharePoint Server 邏輯驗證

驗證流程圖表

在此案例中,驗證是從 Web 前端中使用 Kerberos 驗證進行的用戶端驗證開始。SharePoint Server 2010 會使用本機 Security Token Service (STS) 將 Windows 驗證 Token 轉換為宣告 Token。Excel Service Application 會接受宣告 Token,並使用本機「對 Windows Token 服務的宣告」(C2WTS) (屬於 Windows Identity Framework (WIF) 的一部分) 將它轉換為 Windows Token (Kerberos)。Excel Service Application 接著會使用用戶端的 Kerberos 票證來驗證後端資料來源。

逐步式設定指示

Active Directory 設定

建立 Excel Services 服務帳戶

最佳作法是 Excel Services 使用它自己的網域身分識別來執行。若要設定 Excel Service Application,則必須建立 Active Directory 帳戶。在此範例中,已建立下列帳戶:

SharePoint Server 服務 IIS 應用程式集區身分識別

Excel Services

vmlab\svcExcel

在 Excel Services 服務帳戶上設定 SPN

如果 Excel Services 要將用戶端的身分識別委派給後端資料來源,則必須設定 Kerberos 限制委派。在此範例中,Excel Services 會從 SQL 交易資料庫查詢資料,因此需要 Kerberos 委派。

[Active Directory 使用者和電腦] MMC 嵌入式管理單元一般是用來設定 Kerberos 委派。若要在嵌入式管理單元內設定委派設定,則所設定的 Active Directory 物件必須要套用服務主要名稱;否則,在物件的屬性對話方塊中,將看不到物件的 [委派] 索引標籤。雖然 Excel Services 不需要 SPN 就能運作,但是我們會為此用途設定一個 SPN。

在命令列上執行下列命令:

SETSPN -S SP/ExcelServices

注意

SPN 不是有效的 SPN。它是套用至指定的服務帳戶,以顯示 AD 使用者和電腦增益集中的委派選項。還有其他支援指定委派設定的方法 (尤其是 msDS-AllowedToDelegateTo AD 屬性),但本主題並不會涵蓋在此文件中。

設定 Excel Services 的 Kerberos 限制委派

若要允許 Excel Services 委派用戶端的身分識別,則必須設定 Kerberos 限制委派。需要使用通訊協定轉換來設定限制委派,以透過 WIF C2WTS 將宣告 Token 轉換為 Windows Token。

每部執行 Excel Services 的伺服器都必須受到信任,才能將認證委派給每個 Excel 會驗證的後端服務。此外,也必須將 Excel Services 服務帳戶設定成允許委派給相同後端服務。

在範例中已定義下列委派路徑:

主要類型 主要名稱 委派給服務

使用者

svcExcel

MSSQLSVC/MySqlCluster.vmlab.local:1433

*使用者

svcC2WTS

MSSQLSVC/MySqlCluster.vmlab.local:1433

**電腦

VMSP10APP01

MSSQLSVC/MySqlCluster.vmlab.local:1433

* 在此案例之後進行設定

** 只有在以本機系統身分執行 C2WTS 時才需要

設定限制委派

  1. 在 [Active Directory 使用者和電腦] 中,開啟 Active Directory 物件的屬性。

  2. 導覽至 [委派] 索引標籤。

  3. 選取 [信任這個使用者,但只委派指定的服務]。

  4. 選取 [使用任何驗證通訊協定]。這會啟用通訊協定轉換,而且對於讓服務帳戶使用 C2WTS 而言亦為必要項目。

  5. 按一下 [新增] 按鈕以選取允許委派的服務主要。

  6. 選取 [使用者及電腦]。

  7. 選取執行想要委派服務的服務帳戶。在此範例中,為 SQL 服務的服務帳戶。

    注意

    選取的服務帳戶必須要套用 SPN。在範例中,此帳戶的 SPN 已設定於前一個案例中。

  8. 按一下 [確定]。接著,系統會要求您在下列畫面上選取想要委派的 SPN。

  9. 選取 SQL 叢集的服務,並按一下 [確定]。

  10. 您現在應該會在 [這個帳戶可以呈送委派認證的服務] 清單中看到選取的 SPN。

  11. 請針對在本節開始所定義的每個委派路徑,重複這些步驟。

確認在 SQL Server 上執行此服務之服務帳戶的 MSSQLSVC SPN (在案例 2 中執行)

使用下列 SetSPN 命令,確認 Analysis Services 服務帳戶 (vmlab\svcSQL) 的 SPN 是否存在:

SetSPN -L vmlab\svcSQL

您應該會看到下列項目:

MSSQLSVC/MySqlCluster MSSQLSVC/MySqlCluster.vmlab.local:1433

SharePoint Server 設定

在 Excel Services 伺服器上設定和啟動對 Windows Token 服務的宣告

「對 Windows Token 服務的宣告」(C2WTS) 是負責將使用者宣告 Token 轉換為 Windows Token 的 Windows Identity Foundation (WIF) 元件。服務需要將認證委派給使用整合式 Windows 驗證的後端系統時,Excel Services 會使用 C2WTS 將使用者的宣告 Token 轉換為 Windows Token。WIF 是與 SharePoint Server 2010 一起部署,而且可以從 [管理中心] 啟動 C2WTS。

每部 Excel Services 應用程式伺服器都必須在本機執行 C2WTS。C2WTS 不會開啟任何連接埠,而且遠端呼叫者無法予以存取。甚至,必須特別將 C2WTS 服務設定檔設定成信任本機呼叫用戶端身分識別。

最佳作法是使用專用服務帳戶來執行 C2WTS,而不是以 [本機系統] 身分 (預設設定)。C2WTS 服務帳戶需要每部執行此服務之伺服器的特殊本機權限,以每次在伺服器上啟動服務時設定這些權限。最好是您先設定服務帳戶在本機伺服器上的權限,再啟動 C2WTS;若沒有,您也可以從 Windows [服務] 管理主控台 (services.msc) 重新啟動 C2WTS。

若要啟動 C2WTS

  1. 在 Active Directory 中建立用來執行服務的服務帳戶。在此範例中,我們已建立 vmlab\svcC2WTS。

  2. 將任意服務主要名稱 (SPN) 新增至服務帳戶,以在 [Active Directory 使用者和電腦] 中公開此帳戶的委派選項。因為我們不是使用 Kerberos 驗證來驗證 C2WTS,所以 SPN 可以是任何格式。建議不要使用 HTTP SPN,避免在環境中建立重複 SPN 的可能性。在範例中,我們使用下列命令將 SP/C2WTS 登錄為 vmlab\svcC2WTS:

    SetSPN -S SP/C2WTS vmlab\svcC2WTS
    
  3. 設定 C2WTS Services 帳戶的 Kerberos 限制委派。在此案例中,我們將認證委派給使用 MSSQLSVC/MySqlCluster.vmlab.local:1433 服務主要名稱執行的 SQL 服務。

  4. 接下來,設定 C2WTS 所需要的必要本機伺服器權限。您需要在每部執行 C2WTS 的伺服器上設定這些權限。在範例中,這是 VMSP10APP01。請登入伺服器,並將下列權限授與 C2WTS:

    1. 新增服務帳戶至本機 Administrators 群組。

    2. 在使用者權限指派的本機安全性原則 (secpol.msc) 中,將下列權限授與服務帳戶:

      1. 當成作業系統的一部分

      2. 在驗證後模擬用戶端

      3. 以服務方式登入

  5. 開啟管理中心。

  6. 在 [安全性] -> [設定受管理服務帳戶] 下,將 C2WTS 服務帳戶登錄為受管理帳戶。

  7. 在服務下,選取 [管理伺服器上的服務]。

  8. 在伺服器選取方塊的右上角,選取執行 Excel Services 的伺服器。在此範例中,為 VMSP10APP01。

  9. 找到並啟動 [對 Windows Token 服務的宣告]。

  10. 移至 [安全性] -> [管理服務帳戶]。請將 C2WTS 的身分識別變更為新的受管理帳戶。

    注意

    如果在設定專用服務帳戶之前已執行 C2WTS,或是您需要在執行 C2WTS 之後變更服務帳戶的權限,則必須從 [服務] 主控台重新啟動 C2WTS。

此外,如果您在重新啟動服務之後 C2WTS 發生問題,則也可能需要重設與 C2WTS 進行通訊的 IIS 應用程式集區。

新增啟動相依性至 WIF C2WTS 服務

C2WTS 發生已知問題,可能無法在系統重新開機時順利自動啟動。此問題的解決方法是設定 Cryptographic Services 服務的服務相依性:

  1. 開啟命令提示字元視窗。

  2. 輸入:sc config "c2wts" depend= CryptSvc

  3. 在 [服務] 主控台中找到 [對 Windows Token 服務的宣告]。

  4. 開啟此服務的屬性。

  5. 核取 [相依性] 索引標籤。請確定已列出 [Cryptographic Services]。

  6. 按一下 [確定]。

授與 Web 應用程式內容資料庫上的 Excel Services 服務帳戶權限

設定 SharePoint Server 2010 Office Web 應用程式的必要步驟,允許 Web 應用程式的服務帳戶存取給定 Web 應用程式的內容資料庫。在此範例中,我們會使用 Windows PowerShell,將「入口網站」Web 應用程式內容資料庫的存取權授與 Excel Services 服務帳戶。

從 SharePoint 2010 管理命令介面執行下列命令:

$w = Get-SPWebApplication -Identity http://portal

$w.GrantAccessToProcessIdentity("vmlab\svcExcel")

在 Excel Services 伺服器上啟動 Excel Services 服務執行個體

建立 Excel Services 服務應用程式之前,在指定的伺服器陣列伺服器上啟動 Excel Services 服務。

  1. 開啟管理中心。

  2. 在服務下,選取 [管理伺服器上的服務]。

  3. 在伺服器選取方塊的右上角,選取執行 Excel Services 的伺服器。在此範例中,為 VMSP10APP01。

  4. 啟動 Excel Calculation Services 服務。

建立 Excel Services 服務應用程式和 Proxy

接下來,設定新 Excel Services 服務應用程式和應用程式 Proxy,允許 Web 應用程式使用 Excel Services:

  1. 開啟管理中心。

  2. 選取 [應用程式管理] 下的 [管理服務應用程式]。

  3. 選取 [新增],然後按一下 [Excel Services 應用程式]。

  4. 設定新服務應用程式。請一定要選取正確的服務帳戶 (如果 Excel 服務帳戶不在清單中,則請建立新受管理帳戶)。

設定 Excel Services 信任的檔案位置和驗證設定

建立 Excel Services 應用程式之後,請設定新服務應用程式的屬性,以指定信任的主機位置和驗證設定。

  1. 開啟管理中心。

  2. 選取 [應用程式管理] 下的 [管理服務應用程式]。

  3. 在此範例中,按一下新服務應用程式 [Excel Services] 的連結。

  4. 在 [Excel Services 管理] 畫面中,按一下 [信任的檔案位置]。

  5. 新增信任的檔案位置。

  6. 指定測試庫的位置。

    注意

    在範例中,我們信任根 Web 應用程式 URL 和所有子項。在實際執行環境中,您可能選擇將信任限制為更細的位置。

  7. 在 [外部資料] 中,選取 [信任的資料連線庫與內嵌連線]。

    注意

    此範例會使用內嵌連線來連線至 SQL Server。在您的環境中,您可能選擇建立不同連線檔案,並將它儲存至信任的資料連線庫。在該情況下,您只能選取信任的資料連線庫。

  8. 變更「外部資料快取保留時間」;針對測試用途,最好是變更外部資料快取週期,確定資料重新整理是來自資料來源,而非快取。在 [外部資料] 下,變更下列設定:

    自動重新整理 (定期 / 開啟時) = 0

    手動重新整理 = 0

    注意

    在實際執行環境中,您將會想要設定高於 0 的快取設定。只有在進行測試時,才將快取設定為 0。

驗證 Excel Services 限制委派

建立文件庫以裝載測試活頁簿

在前一個步驟中設定的受信任路徑中,開啟網站。建立新文件庫以裝載測試 Excel 活頁簿。

建立具有 SQL 資料連線的測試 Excel 活頁簿

接下來,建立具有新測試資料庫之資料連線的 Excel 活頁簿:

  1. 開啟 Excel。

  2. 在 [資料] 索引標籤上,選取 [從其他來源]-> [從 SQL Server]。

  3. 連線至測試 SQL 資料來源。

  4. 選取測試資料庫和測試表格 (範例中的 [銷售])。

  5. 按 [下一步]。按一下 [驗證設定] 按鈕。確定已指定 [Windows 驗證]。

  6. 按一下 [完成]。

  7. 選取樞紐分析表。

  8. 設定樞紐分析表。請確定資料是從 SQL 來源傳回。

發佈活頁簿至 SharePoint Server 並重新整理資料連線

驗證 Excel Services 應用程式的最後一個步驟是發佈儀表板,以及測試重新整理內嵌 SQL 連線。

  1. 按一下 [檔案] 索引標籤。

  2. 按一下 [儲存並傳送],並按一下 [儲存至 SharePoint],然後按一下 [瀏覽位置]。

  3. 輸入上一個步驟中建立之受信任文件庫的位置。

  4. 確定已選取 [使用瀏覽器中的 Excel 開啟]。

    顯示測試活頁簿時,會開啟新的瀏覽器視窗。轉譯活頁簿之後,請按一下 [資料],然後按一下 [重新整理所有連線],以重新整理資料連線。

    如果資料連線重新整理,則表示您已順利設定 Excel Services 的 Kerberos 委派。若要進一步測試連線,請透過 SQL Management Studio 變更來源資料,然後重新整理連線。您應該會在活頁簿中看到新變更的資料。如果您看不到任何變更,而且在重新整理時未接收到任何錯誤,則極有可能會看到快取的資料。Excel Services 預設會花費五分鐘從外部來源快取資料。您可以變更此快取設定;如需詳細資訊,請參閱本文中的<設定 Excel Services 信任的檔案位置和驗證設定 >。