Share via


Kerberos 驗證和 SQL Server

Kerberos 是一種網路驗證通訊協定,可為用戶端和網路上的伺服器實體 (安全性主體) 提供非常安全的驗證方法。這些安全性主體使用的驗證是根據主要金鑰和加密票證而定。

Kerberos 通訊協定模型中,每個用戶端/伺服器連接一開始都會進行驗證。用戶端和伺服器會依次逐步執行一系列動作,向連接的兩端驗證對端是真的。如果驗證成功,工作階段的安裝隨即完成且建立安全的用戶端/伺服器工作階段。

Kerberos 驗證的主要優點包括:

  • 相互驗證:用戶端可以驗證伺服器主體的識別,而伺服器也可以驗證用戶端。本文件從頭到尾都將這兩個實體稱為「用戶端」和「伺服器」(即使在伺服器之間也可以建立安全的網路連接)。

  • 保護驗證票證的安全:只有加密的票證才能使用,而票證中絕對不會包含密碼。

  • 整合式驗證:使用者在登入後,只要用戶端票證尚未逾期,在存取支援 Kerberos 驗證的任何服務時就不需要再次登入。每張票證都有存留期間,而這是由產生票證的 Kerberos 範圍的原則決定。

Kerberos 提供在建立安全的網路連接之前,在實體之間進行相互驗證的機制。Kerberos 會使用信任的第三方「金鑰發佈中心」(KDC) 協助驗證票證和對稱工作階段金鑰的產生及安全發佈。KDC 會在安全伺服器上以服務方式執行,並在其範圍 (Realm) 內為所有的安全性主體維護資料庫。在 Kerberos 內容中,範圍即相當於 Windows 網域。

[!附註]

主要金鑰安全性是用戶端和伺服器的責任;KDC 僅提供票證授與服務。

在 Windows 環境中,KDC 的作業會由網域控制站負責,且通常使用 Active Directory。所有的 Windows 網域使用者都是有效的 Kerberos 主體,而可以使用 Kerberos 驗證。

在 SQL Server 中使用 Kerberos

當 SQL Server 正在使用 Windows 驗證時,SQL Server 會透過「Windows 安全性支援提供者介面」(SSPI) 間接支援 Kerberos。SSPI 可以讓應用程式使用電腦或網路上提供的多種安全性模型,而不必變更安全性系統的介面。

SQL Server 讓 SSPI 交涉要使用的驗證通訊協定;如果無法使用 Kerberos,則 Windows 會恢復使用 Windows NT Challenge/Response (NTLM) 驗證。

SQL Server 2008 在下列的通訊協定上支援 Kerberos 驗證:

  • TCP/IP

  • 具名管道

  • 共用記憶體

如需有關前述通訊協定的詳細資訊,請參閱<網路通訊協定和 TDS 端點>。

建議您的最佳作法是在可能情況下,針對 SQL Server 執行個體的連線使用 Kerberos 驗證。