Team Foundation Server、基本驗證和摘要式驗證

更新:2007 年 11 月

Visual Studio 2008 可以支援基本和摘要式驗證模式。您可以藉由設定 Team Foundation Server 部署以使用搭配 Secure Sockets Layer (SSL) 的 HTTPS 及基本驗證或摘要式驗證,以支援 Team Foundation Server 的外部連接,而不需要使用虛擬私人網路 (VPN) 連接。

組態

為了支援與 Team Foundation Server 部署的外部連接,則必須將網際網路資訊服務 (IIS) 設定為啟用基本驗證和 (或) 摘要式驗證。此外,您必須設定網際網路伺服器應用程式發展介面 (ISAPI) 篩選常式。ISAPI 篩選常式是 DLL 檔案,可用來修改及增強 IIS 提供的功能。ISAPI 篩選常式一律在執行 IIS 的伺服器上執行。您必須使用 Web Proxy 的 IP 位址及 (或) 使用基本驗證或摘要式驗證所需的任何用戶端來設定屬於 SP1 之一部分的 ISAPI 篩選常式。

基本驗證和摘要式驗證

基本驗證是 HTTP 1.0 規格的一部分,它會使用 Windows 使用者帳戶。在基本驗證期間,瀏覽器會提示使用者輸入使用者名稱和密碼。使用者名稱和密碼資訊會使用 Base64 編碼方式來透過 HTTP 進行傳送。根據預設,基本驗證會要求 Windows 使用者帳戶在 Web 伺服器上具有本機登入權限。工作群組和網域部署中都可以使用基本驗證。雖然大多數的 Web 伺服器、Proxy 伺服器和 Web 瀏覽器都支援基本驗證,但是基本驗證並不安全。因為解碼 Base64 編碼的資料非常容易,所以基本驗證基本上是以純文字格式傳送密碼。居心不良的人可以使用可公開取得的工具監視網路上的通訊,便可以輕鬆攔截這些密碼及解密。

摘要式驗證是一項挑戰/回應機制,它會透過網路傳送摘要 (也稱為雜湊),而不是傳送密碼。在摘要式驗證期間,IIS 會將挑戰傳送到用戶端來建立摘要,然後將此摘要送到伺服器。用戶端會傳送以使用者密碼為根據的摘要,並將用戶端和伺服器都認得的資料當做挑戰的回應來送給伺服器。伺服器會使用用戶端建立其摘要的相同程序,並搭配使用從 Active Directory 取得的使用者資訊。如果伺服器所建立的摘要符合用戶端所建立的摘要,IIS 就會驗證此用戶端。Active Directory 網域部署中只能使用摘要式驗證。摘要式驗證本身只是基本驗證的稍微改良;攻擊者可以記錄用戶端和伺服器之間的通訊,並使用該資訊來重新執行交易。摘要式驗證也相依於 HTTP 1.1 通訊協定。並非所有的 Web 瀏覽器都支援該通訊協定。此外,您必須正確設定摘要式驗證,否則嘗試存取 Team Foundation Server 會失敗。如果部署並未達到摘要式驗證的所有要求,請勿選擇摘要式驗證。如需摘要式驗證的詳細資訊,請參閱 Microsoft 網站 (https://go.microsoft.com/fwlink/?LinkID=89709h) (英文)。

使用限制

除了之前所提到的網域和工作群組需求之外,基本驗證和摘要式驗證本身都不足以針對外部用戶端提供網路安全性。因此,您不應該設定 Team Foundation Server 支援外部用戶端,除非您也設定需要這些具有 SSL 的 HTTPS 連線。

ISAPI 篩選常式組態

您可以設定 ISAPI 篩選常式針對指定的任何一組 IP 位址強制施行規則。雖然大多數的系統管理員主要是關心針對外部 IP 位址設定 ISAPI 篩選常式規則,但是您也可以為內部位址設定規則。ISAPI 篩選常式中所設定的任何 IP 位址都必須遵循此篩選常式中所指定的規則。根據 RequireSecurePort 設定而定,不一定會允許未在此檔案中指定的位址連接到 Team Foundation Server。

ISAPI 篩選常式的組態設定中會使用 AuthenticationFilter.ini 檔。您必須透過適合部署的設定來設定這個檔案,此檔案可使用下列組態的索引鍵和值:

索引鍵

支援的值

RequireSecurePort

True

False

ProxyIPList

IPaddress (可以是一個以上的位址,位址之間以分號區隔)

SubnetList

IPaddress/subnetmask (可以是一個以上的位址,位址之間以分號區隔)

[config]

ISAPI 篩選常式檔案的區段標頭

索引鍵進一步定義如下:

  • RequireSecurePort:如果您將 RequireSecurePort 設定為 True,則所有的連接都必須使用 HTTPS/SSL 及摘要式驗證或基本驗證,除非這些連接是 SubnetList 中所指定的其中一個位址。如果您將 RequireSecurePort 設定為 False,只有當連接使用 ProxyIPList 中所指定的位址時,才需要使用 HTTPS/SSL 及摘要式驗證或基本驗證。

  • ProxyIPList:這些是您要強制施行摘要式驗證或基本驗證的 IP 位址。將此索引鍵概念化的最簡單方式,就是將它視為「只要求這些位址使用基本驗證或摘要式驗證」。為此索引鍵指定的位址將需要使用摘要式驗證或基本驗證及 HTTPS/SSL。此索引鍵優先於 SubnetList;如果有 ProxyIPList 索引鍵存在,將會忽略 SubnetList 索引鍵和它的值。

  • SubnetList:SubnetList 是您不想要強制施行摘要式驗證或基本驗證的 IP 位址/子網路遮罩組。將此索引鍵概念化的最簡單方式,就是將它視為「要求這些位址除外的所有位址使用基本驗證或摘要式驗證」。為此索引鍵指定的位址將不需要使用摘要式驗證或基本驗證及 HTTPS/SSL;未針對此索引鍵指定的任何位址都需要使用摘要式驗證或基本驗證。如果 ISAPI 篩選常式中有 ProxyIPList 索引鍵,將會忽略 SubnetList 索引鍵和它的值。

請參閱

工作

逐步解說:使用 Secure Sockets Layer (SSL) 和 ISAPI 篩選常式設定 Team Foundation Server

逐步解說:設定 Team Foundation Server 以要求 HTTPS 和 Secure Sockets Layer (SSL)

概念

Team Foundation Server、HTTPS 和 Secure Sockets Layer (SSL)