天天看點

TFS簡介

Team Foundation Server(TFS)是一種為 Microsoft 産品提供 源代碼管理、資料收集、報告和項目跟蹤,而為協作軟體開發的項目。可作為獨立的軟體,或 Visual Studio Team System (VSTS) 在伺服器端後端平台。它是Microsoft應用程式生命周期管理(ALM)工具的核心協作平台,簡單的說它是管理和開發軟體項目的整個生命周期的平台工具。

主要功能

  • 版本管理:工作區(workspace)、變更集(changeset)、标簽
  • 并行開發支援:多點(checkout)、分支與合并、擱置集(shelveset) 
  • 強化過程管理:連結工作項、靜态代碼分析、代碼覆寫率 
  • 自動化建構
  • 完善的權限管理
  • 支援分布式開發 

元件術語

  • 應用層、資料層、用戶端層:組成 Team Foundation Server 的邏輯層。這些層可能全部部署在同一台實體計算機上,也可能安裝在多台計算機上。
  • 團隊項目集合:Team Foundation Server中所有資料的主要組織機關。集合可以包含一個或多個團隊項目。
  • 團隊項目:團隊用于共享開發特定軟體技術或産品所需的團隊活動的中心點。團隊項目以團隊項目集合進行組織。
  • Team Foundation 管理控制台:Team Foundation Server中管理者的集中管理工具。您可以從管理控制台管理使用者和權限,還可以建立和管理團隊項目集合、添加和管理 SharePoint Web應用程式以在部署中使用、建立和管理虛拟實驗室以及檢查伺服器狀态。
  • 服務帳戶:Team Foundation中的Web服務和應用程式使用的帳戶。Team Foundation Server需要使用服務帳戶在伺服器和Web服務之間執行操作。這些服務帳戶有特定要求。
  • SharePoint 産品:為基于Web的業務應用程式的協作和開發提供可伸縮、可管理的平台的軟體。 您可以将一個或多個SharePoint Web應用程式包含為Team      Foundation Server 部署的組成部分。若要包含這些應用程式之一,必須為 SharePoint 産品安裝和配置 Team Foundation Server 擴充,并且必須在整個部署中配置權限。
  • SQL Server 和 SQL Server Reporting Services:為大型聯機事務處理 (OLTP)、資料倉庫和電子商務應用程式提供資料庫平台的軟體。SQL Server 也是資料內建、分析和報告解決方案的業務智能平台。Team Foundation Server 在 SQL Server 資料庫中存儲其資料。您也可以選擇包含運作 SQL Server Reporting Services 的伺服器和自動生成團隊項目報告的伺服器。

安全

  • 拓撲,包括運作 Team Foundation元件的伺服器的部署位置和部署方式、在 Team Foundation Server 和Team Foundation用戶端之間傳遞的網絡通信以及必須在 Team Foundation Server上運作的服務。
  • 身份驗證,包括确定 Team Foundation Server 中的使用者、組和服務的有效性。
  • 授權,包括确定 Team Foundation Server 中的有效使用者、組和服務是否有執行特定操作的相應權限。

此外,您還應考慮 Team Foundation Server 依賴的其他元件和服務。

在考慮 Team Foundation Server 的安全性時,必須了解身份驗證和授權之間的差别。“身份驗證”是指對來自用戶端、伺服器或程序的連接配接嘗試所提供的憑據進行驗證。“授權”是指驗證嘗試連接配接的身份是否具有通路對象或方法的權限。授權隻在身份驗證成功之後進行。如果連接配接沒有通過身份驗證,它在執行任何授權檢查操作之前就會失敗。連接配接成功通過身份驗證後,特定操作仍可能因使用者或組沒有被授權執行該操作而被禁止。 

拓撲端口

Team Foundation Server 部署和安全性的首要因素是部署的各個元件是否能夠彼此連接配接以進行通信。您的目标是啟用Team Foundation用戶端與 Team Foundation Server 之間的連接配接,同時限制或阻止其他連接配接嘗試。

Team Foundation Server 需要依靠一些特定的端口和服務才能發揮作用。可以對這些端口進行保護和監視以幫助滿足業務安全的需要。必須允許Team Foundation Server網絡通信在 Team Foundation 用戶端、承載 Team Foundation 應用層和資料層的各個邏輯元件的伺服器、Team Foundation Build 計算機以及使用 Team Foundation Server Proxy 的遠端用戶端之間進行傳遞。預設情況下,Team Foundation Server 配置為對其 Web 服務使用 HTTP。

您可以在 Active Directory 域或工作組中部署 Team Foundation Server。與工作組相比,Active Directory 提供的内置安全功能更多。可以使用 Active Directory 功能幫助保護 Team Foundation Server 部署的安全。例如,可以将 Active Directory 配置為禁止使用重複的計算機名稱,這樣,惡意使用者就無法用運作 Team Foundation Server 的非法伺服器來假冒計算機名稱。若要降低同類威脅在工作組中的影響,必須配置計算機證書。

無論是在工作組中還是在域中部署 Team Foundation Server,都必須符合 Team Foundation Server 本身的要求所規定的限制。

身份驗證

Team Foundation Server 安全性與 Windows 內建身份驗證和 Windows 作業系統的安全功能內建在一起,其實作也依賴于後兩個因素。 可以使用 Windows 內建身份驗證對以下方面進行帳戶身份驗證:Team Foundation 用戶端與 Team Foundation Server 之間的連接配接、承載 Team Foundation 邏輯應用層和資料層的伺服器上的 Web 服務、應用層伺服器和資料層伺服器本身之間的連接配接。

不應将 Team Foundation Server 與 SharePoint 産品之間的任何 SQL Server 資料庫連接配接配置為使用 SQL Server 身份驗證,因為這種方式的安全性沒有 Windows 身份驗證高。在連接配接至資料庫時,資料庫管理者帳戶的使用者名和密碼會以不加密的格式發送。Windows 內建身份驗證并不發送使用者名和密碼,而是使用 Windows 內建身份驗證安全協定向 SQL Server 傳輸與宿主 Internet 資訊服務 (IIS) 應用程式池關聯的服務帳戶辨別資訊。

組和權限

Team Foundation Server 授權基于下列因素:Team Foundation 使用者群組、直接配置設定給這些使用者群組的權限,以及這些使用者群組由于屬于其他 Team Foundation Server 組而可能繼承的權限。Team Foundation 使用者群組可以是本地使用者或組、Active Directory 使用者群組,或者同時屬于這兩者。

Team Foundation Server 預先配置了伺服器、集合和項目級别的預設組。您可以通過添加各個使用者填充這些組。但是,使用 Active Directory 安全組來填充這些組可能更易于管理。利用這種方法,可以更有效地管理多台計算機或多個應用程式(如 SharePoint 産品和 SQL Server)中的組成員資格和權限。

特定的部署可能要求您在多台計算機上以及多個應用程式中配置使用者、組和權限。例如,如果要将報表和項目門戶包含在部署中,必須在 Reporting Services、SharePoint 産品和 Team Foundation Server 中配置使用者群組的權限。在 Team Foundation Server 中,可以為每個項目、每個集合設定權限,也可以在整個部署(伺服器級别)中設定權限。此外,某些權限将預設授予添加到 Team Foundation Server 中的任何使用者或組,因為該使用者或組會自動添加到 “Team Foundation Valid Users”

體系結構

若要分析和計劃 Team Foundation Server 的最佳部署以滿足業務需求,必須考慮以下各方面:

  • Team Foundation 的邏輯應用層、資料層和用戶端層
  • 承載這些層的實體伺服器的位置
  • 将在您的環境中運作的 Team Foundation Build和生成計算機。
  • Team Foundation Server Proxy

此外,還必須考慮這些實體之間的互動。您必須知道使用哪些 Web 服務、資料庫和對象模型。而且,您還必須了解預設情況下使用哪些網絡端口和協定,以及可以自定義哪些網絡端口。除了其本身的服務之外,Team Foundation Server 還需依靠其他服務才能運作。

對象模型

通過 Team Foundation Server 的對象模型,Team Foundation 的邏輯層可以進行通信,軟體內建商及其他公司可以自定義和擴充 Team Foundation Server 功能。

Team Foundation Server 的對象模型是一組包含下列接口的托管 API:

  • Team Foundation Framework 服務
  • 管理服務
  • 事件服務
  • 團隊項目集合服務
  • 注冊服務
  • 安全性服務
  • 位置服務
  • 辨別管理服務
  • 目錄服務
  • 作業服務
  • 屬性服務
  • 版本控制對象模型
  • 工作項跟蹤對象模型
  • Foundation Build 對象模型

Web服務

Team Foundation Server 包含一組 Web 服務和資料庫,它們将單獨安裝和配置在承載 Team Foundation 的邏輯應用層、資料層和用戶端層的一台或多台伺服器上。

配置資訊

Team Foundation Server 依賴于 SQL Server、Internet 資訊服務 (IIS) 和 Windows 作業系統。根據部署的不同,Team Foundation Server 可能還依賴于 SQL Server Reporting Services 或 SharePoint 産品。是以,Team Foundation Server 的配置資訊可存儲在下列任意位置:

  • IIS 資料存儲區
  • Team Foundation Server 的配置檔案
  • Reporting Services      的資料源(例如,TFSREPORTS 資料)
  • Team Foundation Server 的配置資料庫
  • Windows 系統資料庫

在維護 Team Foundation Server 部署時,必須考慮這些配置源。若要以任意方式更改配置,可能需要修改存儲在多個位置中的資訊。此外,還可能需要更改資料層和用戶端層的配置資訊。Team Foundation Server 包括一個管理控制台和多個指令行實用工具,可幫助您進行這些更改。不過,有些配置更改可能需要您手動進行一些調整。

同步 Active Directory 與 Team Foundation Server 之間的組辨別對于在 Active Directory 域中運作 Team Foundation Server 的部署,當發生以下任意事件時,均會同步組和辨別資訊:

Team Foundation 的應用層伺服器啟動。

在 Team Foundation Server 中向組添加 Active Directory 組。

超過計劃作業中指定的時間段。(預設值為一小時,Team Foundation Server 中的所有組每 24 小時更新一次。)

辨別管理服務 (IMS) 與 Active Directory 同步,并且更改的辨別會從伺服器傳播到用戶端。根據作業服務的同步計劃的不同,更改可能不會立即反映在 Team Foundation Server 中。 預設情況下,将在 24 小時内更新所有組,但您可以自定義此設定以更加适合部署的需求。

繼續閱讀