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

 

適用版本: SharePoint Server 2010

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

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

案例相依性

若要完成此案例,您需要已完成下列項目:

設定檢查清單

設定區域 描述

Active Directory 設定

建立 Visio Services 服務帳戶

在 Visio Services 服務帳戶上設定 SPN

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

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

SharePoint Server 設定

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

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

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

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

確認 Visio Services 限制委派

設定 Visio Services 快取設定

建立文件庫以裝載測試 Visio 圖表

建立具有 SQL Server 資料連接之圖形的測試 Visio Web 繪圖

將 Web 繪圖發佈至 SharePoint Server 並重新整理資料連線

案例環境詳細資料

Kerberos 限制委派路徑

委派路徑圖表

在此案例中,會設定 SharePoint Server Visio Services 應用程式伺服器和服務帳戶,以進行 SQL Server 服務的 Kerberos 限制委派。

SharePoint Server 邏輯驗證

驗證流程圖表

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

逐步式設定指示

Active Directory 設定

建立 Visio Services 服務帳戶

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

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

Visio Services

vmlab\svcVisio

建立 Visio Services 服務帳戶

在 Visio Services 服務帳戶上設定 SPN

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

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

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

SETSPN -S SP/VisioServices svc\VisioServices

注意

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

設定 Visio Services 的 Kerberos 限制委派

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

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

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

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

使用者

Vmlab\svcVisio

MSSQLSVC/MySqlCluster.vmlab.local:1433

*使用者

Vmlab\svcC2WTS

MSSQLSVC/MySqlCluster.vmlab.local:1433

**電腦

Vmlab\vmsp10app01

MSSQLSVC/MySqlCluster.vmlab.local:1433

* 在此案例之後進行設定

** 選用。只有在以「本機系統」身分執行 C2WTS 時,才需要電腦帳戶的限制委派

設定限制委派

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

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

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

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

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

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

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

    注意

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

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

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

  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 設定

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

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

每部 Visio Graphics Service 應用程式伺服器都必須在本機執行 C2WTS。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 Server 服務。

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

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

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

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

      2. 在驗證後模擬用戶端

      3. 以服務方式登入

  5. 開啟管理中心。

  6. 在 [安全性] 的 [設定受管理服務帳戶] 區段中,將 C2WTS 服務帳戶登錄為受管理帳戶。

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

  8. 在伺服器選取方塊的右上角,選取執行 Visio Graphics Service 的伺服器。在此範例中,為 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 應用程式內容資料庫上的 Visio Services 服務帳戶權限

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

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

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

$w.GrantAccessToProcessIdentity("vmlab\svcVisio")

在 Visio 伺服器上啟動 Visio Graphics Service 執行個體

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

  1. 開啟管理中心。

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

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

  4. 啟動 [Visio Graphics Service]。

建立 Visio Graphics Service 應用程式和 Proxy

接下來,設定新 Visio Services 服務應用程式和應用程式 Proxy,允許 Web 應用程式使用 Visio Services (如果尚未存在):

  1. 開啟管理中心。

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

  3. 選取 [新增],然後選取 [Visio Graphics Service]。

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

確認 Visio Graphic Service 限制委派

設定 Visio Services 快取設定

Visio Graphics 服務預設會根據服務的快取設定,針對 Web 用戶端所轉譯的 Web 繪圖,快取數分鐘的時間。為了測試委派,我們將設定服務不要快取繪圖,以輕鬆地檢查 Visio Web 繪圖中的資料重新整理。

注意

在實際執行環境中,不建議停用轉譯快取。請記住,在 Visio 中完成測試委派之後,請重新啟用快取。

  1. 開啟管理中心。

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

  3. 選取上一個步驟中建立的 Visio Graphics Service 應用程式。

  4. 選取 [通用設定]。

  5. 在 [快取保留時間下限] 設定中,將快取設定為 0 (無快取)。

    注意

    只有針對測試用途,才應該將快取保留時間下限設定為 0,而且不應該用於實際執行環境中。

建立文件庫以裝載測試 Visio Web 繪圖

導覽至入口網站應用程式 (http://入口網站)。建立新文件庫以裝載測試 Visio 活頁簿。

建立具有 SQL Server 資料連接之圖形的測試 Visio Web 繪圖

  1. 啟動 Visio 2010。

  2. 在 [常用] 的 [一般] 區段下,建立新 [基本圖]。

  3. 在 [資料] 功能區索引標籤上,選取 [連結資料至圖形]。

  4. 在 [資料選取器] 對話方塊中,選取 [Microsoft SQL Server 資料庫]。

  5. 指定案例 2 中建立的 SQL Server 叢集,並選取 [Windows 驗證]。

  6. 選取 [測試] 資料庫和 [銷售] 資料表。

  7. 指定連線的易記名稱,並儲存上一個步驟中建立的文件庫連線。

  8. 在 [資料選取器] 對話方塊中,選取新建立的連線,並按 [完成]。

    您現在應該會在繪圖視窗底部中的外部資料視窗,看到先前所建立範例資料。

  9. 將第一個資料列拖曳至繪圖表面。這樣會建立連結至資料列的新圖形。請注意,測試繪圖是要測試委派,而不是要示範如何建立完整運作且已實際執行的 Web 繪圖。

將 Web 繪圖發佈至 SharePoint Server 並重新整理資料連線

  1. 將繪圖發佈至測試 SharePoint 文件庫。在 [檔案] 索引標籤上,依序按一下 [儲存並傳送]、[儲存至 SharePoint]、[瀏覽位置] 和 [Web 繪圖]。

  2. 瀏覽至測試文件庫,並指定測試繪圖的名稱,然後按一下 [儲存]。

    繪圖隨即在瀏覽器中開啟。

  3. 在 [已停用重新整理] 通知中,選取 [啟用 (永遠)]。

  4. 應該會自動重新整理資料連線,且不應該發生錯誤。

  5. 開啟 SQL Server Management Studio,並修改 Web 繪圖中顯示的資料列。

  6. 按下繪圖視窗頂端的 [重新整理] 按鈕,以重新整理資料連線。如果委派的設定正確,則您應該會看到資料已重新整理。