自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

使用 Kerberos 進(jìn)行 SharePoint 身份驗(yàn)證

企業(yè)動(dòng)態(tài)
雖然 SharePoint 提供了多個(gè)身份驗(yàn)證選項(xiàng)和身份驗(yàn)證區(qū)域,但在 Intranet 方案中企業(yè)實(shí)現(xiàn)的兩個(gè)最常見(jiàn)選項(xiàng)還是 NTLM 和 Kerberos。這兩種協(xié)議都用于典型的質(zhì)詢/響應(yīng)方案中的集成 Windows 身份驗(yàn)證。NTLM 依賴于 IIS 在質(zhì)詢過(guò)程中生成令牌,將令牌發(fā)送到客戶端,客戶端用令牌進(jìn)行響應(yīng),域控制器驗(yàn)證該響應(yīng)。

雖然 SharePoint 提供了多個(gè)身份驗(yàn)證選項(xiàng)和身份驗(yàn)證區(qū)域,但在 Intranet 方案中企業(yè)實(shí)現(xiàn)的兩個(gè)最常見(jiàn)選項(xiàng)還是 NTLM 和 Kerberos。這兩種協(xié)議都用于典型的質(zhì)詢/響應(yīng)方案中的集成 Windows 身份驗(yàn)證。NTLM 依賴于 IIS 在質(zhì)詢過(guò)程中生成令牌,將令牌發(fā)送到客戶端,客戶端用令牌進(jìn)行響應(yīng),域控制器驗(yàn)證該響應(yīng)。NTLM 要求在傳輸用戶名和密碼之前必須對(duì)它們進(jìn)行加密,還要求在訪問(wèn)新網(wǎng)絡(luò)資源時(shí)重新進(jìn)行身份驗(yàn)證(新令牌)。相反,Kerberos 則依賴于一個(gè)票證系統(tǒng),其中的客戶端和服務(wù)器訪問(wèn)一個(gè)名為密鑰發(fā)行中心 (KDC) 的受信任頒發(fā)機(jī)構(gòu),KDC 將響應(yīng)客戶端請(qǐng)求,并授予相應(yīng)票證,客戶端可以使用該票證訪問(wèn)網(wǎng)絡(luò)資源。Kerberos 不需要重新進(jìn)行身份驗(yàn)證來(lái)訪問(wèn)多個(gè)資源。

當(dāng)前的大部分文檔都提倡使用 NTLM,除非是有某種特別迫切的需求,例如具有高安全服務(wù)級(jí)別協(xié)議的網(wǎng)站面臨的需求。即便在這種情況下,如果您進(jìn)一步深究的話,使用 NTLM 仍是您的***:它更易于實(shí)現(xiàn),無(wú)需額外步驟,而且能夠減少支持問(wèn)題。例如,知識(shí)庫(kù)文章 832769 寫(xiě)道:“…或無(wú)法配置服務(wù)主體名稱 (SPN),請(qǐng)選擇 NTLM 身份驗(yàn)證。如果您選擇 Kerberos 身份驗(yàn)證但無(wú)法配置 SPN,則只有服務(wù)器管理員能夠通過(guò) SharePoint 網(wǎng)站的身份驗(yàn)證。”這個(gè)說(shuō)法在技術(shù)上是準(zhǔn)確的,但它似乎有一層隱含意思:配置 SPN 過(guò)于復(fù)雜,除非有人要求實(shí)現(xiàn) Kerberos,否則都應(yīng)對(duì) Kerberos 避而遠(yuǎn)之。但事實(shí)是,如果您了解原理,實(shí)現(xiàn) Kerberos 并不是那么困難。

我們有很多合理的理由來(lái)解釋為什么應(yīng)該轉(zhuǎn)換到 Kerberos,或者在新實(shí)現(xiàn)的系統(tǒng)中自始至終使用 Kerberos,但在大多數(shù)情況下,這些理由都可以歸結(jié)為性能或安全性。隨著用戶負(fù)載或拓?fù)鋸?fù)雜性的增加,NTLM 可能會(huì)引發(fā)性能問(wèn)題,因?yàn)樵诤芏?SharePoint 使用方案中(例如訪問(wèn) SharePoint Web 部件或自定義 Web 服務(wù)的 Web 應(yīng)用程序),基于 NTLM 的身份驗(yàn)證必定需要在 IIS 和域控制器之間多次往返。如果通過(guò)低速或高延遲鏈路來(lái)訪問(wèn)域控制器,則很有可能出現(xiàn)性能問(wèn)題。就安全性而言,采用網(wǎng)絡(luò)資源顯式委派的基于票證的系統(tǒng) (Kerberos) 在設(shè)計(jì)上比只加密用戶憑據(jù)的方法更為安全。而且它速度更快,因?yàn)樗鼉H使用單個(gè)票證即可訪問(wèn)多個(gè)網(wǎng)絡(luò)資源。

很多安裝最初都采用 NTLM 而不是 Kerberos,因?yàn)橐?guī)劃拓?fù)?、服?wù)器規(guī)模調(diào)整、安全支持提供程序 (SSP) 以及其他復(fù)雜細(xì)節(jié)已經(jīng)令人望而生畏了,如果進(jìn)一步提高復(fù)雜性,會(huì)讓用戶感到力不從心。這種看法有其合理之處。不管怎么說(shuō),啟用了 Kerberos 的實(shí)現(xiàn)難免會(huì)出現(xiàn)問(wèn)題。只要閱讀知識(shí)庫(kù)文章 871179、962943832769,便可了解到可能出現(xiàn)的一些問(wèn)題,這些問(wèn)題可能同藍(lán)屏 STOP 錯(cuò)誤一樣嚴(yán)重。即便是現(xiàn)有文檔,例如 Microsoft 的 Kerberos 詳細(xì)實(shí)現(xiàn)指南,也沒(méi)有包括有關(guān) IIS 版本 7 或更高版本的詳細(xì)信息,這些版本實(shí)現(xiàn)了內(nèi)核模式身份驗(yàn)證功能,并改變了處理 SPN 的方式。但不要擔(dān)心,如果您了解 SharePoint 如何使用 Kerberos 的基本概念,則實(shí)現(xiàn)和配置 Kerberos 會(huì)變得相對(duì)簡(jiǎn)單一些。本文介紹了基本的體系結(jié)構(gòu)組件,還包括一些配置詳細(xì)信息,可以幫助您入門(mén)。Microsoft 已經(jīng)發(fā)布了帶有分步詳細(xì)信息的文檔,以及知識(shí)庫(kù)文章 832769953130,可為您提供更多參考。

身份驗(yàn)證組件和依賴關(guān)系

首先,我們將了解處理集成 Windows 身份驗(yàn)證的 SharePoint 體系結(jié)構(gòu)中的依賴關(guān)系。從最基本的層面上來(lái)講,無(wú)論是使用 NTLM 還是 Kerberos,都會(huì)有一個(gè)客戶端向啟用 SharePoint 的 .aspx 網(wǎng)頁(yè)發(fā)出請(qǐng)求,該網(wǎng)頁(yè)在后臺(tái)使用 .NET 和 IIS。與此同時(shí),該網(wǎng)頁(yè)還依賴于 SQL Server 配置和內(nèi)容數(shù)據(jù)庫(kù)中的數(shù)據(jù)。圖 1 顯示了 IIS 如何在 SharePoint 2007 上下文中處理與身份驗(yàn)證相關(guān)的請(qǐng)求。當(dāng)客戶端瀏覽器發(fā)出 Web 請(qǐng)求時(shí),將在 IIS 中啟動(dòng)一個(gè)線程,且與該請(qǐng)求相關(guān)的對(duì)象(例如,包含在 IPrincipal 對(duì)象中的 IIdentity 對(duì)象所含的令牌)將被附加到線程。從編程角度而言,IIdentity 和 IPrincipal 對(duì)象均通過(guò) HttpContext.User 屬性訪問(wèn),而這兩個(gè)對(duì)象和該屬性均由 .NET 管道中包含的身份驗(yàn)證模塊設(shè)置,如圖 1 所示。

 

圖 1 SharePoint 中的通用身份驗(yàn)證組件和數(shù)據(jù)流

以下流程詳細(xì)說(shuō)明了數(shù)據(jù)流:

  1. 客戶端瀏覽器通過(guò)匿名 HTTP GET 請(qǐng)求初始化與 SharePoint 前端服務(wù)器的連接(由帶有 .NET 的 IIS 處理)。
  2. 如果該區(qū)域配置了匿名訪問(wèn)(例如在 Internet 方案中),則 IIS 將繼續(xù)處理該請(qǐng)求。否則,IIS 將返回錯(cuò)誤 401.2 并請(qǐng)求從客戶端瀏覽器中進(jìn)行身份驗(yàn)證。
  3. 客戶端瀏覽器接收請(qǐng)求,并根據(jù)區(qū)域和關(guān)聯(lián)的選項(xiàng)對(duì)客戶端進(jìn)行身份驗(yàn)證。常用方法是調(diào)用 AcquireCredentialsHandle 并提示輸入用戶名/密碼,然后通過(guò) IIS 將身份驗(yàn)證令牌返回 SharePoint。
  4. IIS 正在 HTTP 會(huì)話中等待響應(yīng)并接受身份驗(yàn)證令牌,然后授權(quán)或拒絕訪問(wèn)。此時(shí),IIS 通過(guò) .NET 將請(qǐng)求傳遞給 SharePoint。
  5. 如果請(qǐng)求的頁(yè)面包含需要訪問(wèn)后端 SQL 數(shù)據(jù)庫(kù)的 Web 部件,則 SharePoint 將進(jìn)行 SQL Server 身份驗(yàn)證并訪問(wèn)數(shù)據(jù)庫(kù)。SQL 身份驗(yàn)證的特性因配置選項(xiàng)而異。例如,您可以配置使用 NTLM 或 Kerberos 的 SQL Server 身份驗(yàn)證或集成 Windows 身份驗(yàn)證。下文將介紹 Kerberos 和 NTLM 的具體內(nèi)容。

SharePoint 中身份驗(yàn)證機(jī)制的關(guān)鍵所在是以下三個(gè)層分別行使各自的功能:客戶端瀏覽器、帶有 .NET 的 IIS 以及 SQL Server。為了返回已編譯的 .aspx 頁(yè),身份驗(yàn)證和授權(quán)都在客戶端、IIS 和 SQL Server 之間進(jìn)行。有時(shí)候這***程也會(huì)簡(jiǎn)化,例如在 SQL Server 與 IIS 位于同一物理服務(wù)器中的情況下使用 NTLM 進(jìn)行身份驗(yàn)證時(shí)。在這種情況下,從客戶端到 IIS 只有一個(gè)躍點(diǎn)。有關(guān) .NET 中的身份驗(yàn)證的詳細(xì)信息,請(qǐng)參閱解釋:ASP.NET 2.0 中的 Windows 身份驗(yàn)證。

NTLM 和 Kerberos

現(xiàn)在您已經(jīng)了解了 Windows Server、IIS 和 .NET 用于對(duì)用戶進(jìn)行身份驗(yàn)證和授權(quán)的基礎(chǔ)機(jī)制,下面我們將說(shuō)明如何通過(guò)這種機(jī)制使用 NTLM 和 Kerberos 進(jìn)行集成 Windows 身份驗(yàn)證。正如上文所述,NTLM 和 Kerberos 之間的關(guān)鍵差異在于:NTLM 使用質(zhì)詢/響應(yīng)機(jī)制,在訪問(wèn)每個(gè)網(wǎng)絡(luò)資源時(shí)都需要進(jìn)行身份驗(yàn)證和授權(quán);而 Kerberos 則使用票證系統(tǒng),只需進(jìn)行一次身份驗(yàn)證,然后通過(guò)委派進(jìn)行授權(quán)。如果您不太明白這一差異,也不要擔(dān)心,下面我將進(jìn)行詳細(xì)說(shuō)明。圖 2 說(shuō)明了 SharePoint 在使用 NTLM 時(shí)如何處理請(qǐng)求。

 

圖 2 SharePoint 中的 NTLM 身份驗(yàn)證

如圖 2 所示,使用 NTLM 需要一個(gè)能夠?qū)τ脩暨M(jìn)行身份驗(yàn)證的域控制器。如果域在本機(jī)模式下運(yùn)行,則默認(rèn)情況下必須在域控制器或另一個(gè)服務(wù)器上有一個(gè)全局編錄。除了雙躍點(diǎn)問(wèn)題之外,這也是一個(gè)潛在的性能問(wèn)題,因?yàn)樵谂c域控制器取得聯(lián)系之后,如果本地沒(méi)有全局編錄可用,則會(huì)通過(guò)代理將身份驗(yàn)證請(qǐng)求發(fā)送到全局編錄服務(wù)器。在鏈路速度緩慢的情況下,這可能會(huì)消耗大量的資源和帶寬。您可以想法設(shè)法提高 NTLM 身份驗(yàn)證的性能,例如通過(guò)更改 MaxConcurrentApi 注冊(cè)表項(xiàng)的值,但這無(wú)法解決 NTLM 需要依賴質(zhì)詢/響應(yīng)方案的根本需求,也無(wú)法解決高負(fù)載下的相關(guān)性能問(wèn)題。

同一域中的帳戶的 NTLM 身份驗(yàn)證的詳細(xì)信息如下所示:

  1. 流程按上文所述的方式開(kāi)始,客戶端瀏覽器利用 HTTP GET 請(qǐng)求來(lái)初始化與運(yùn)行帶有 .NET 的 IIS 的 SharePoint 前端服務(wù)器的連接,并嘗試以匿名方式進(jìn)行身份驗(yàn)證。
  2. IIS 拒絕匿名請(qǐng)求,返回 401.2 錯(cuò)誤,并發(fā)回使用 NTLM (WWW-Authenticate: NTLM) 進(jìn)行身份驗(yàn)證的請(qǐng)求。
  3. 客戶端瀏覽器接收該請(qǐng)求,并調(diào)用 InitializeSecurityContext 以創(chuàng)建包含域和計(jì)算機(jī)名稱的身份驗(yàn)證令牌,然后將該身份驗(yàn)證令牌發(fā)送到 IIS。
  4. IIS 接受詳細(xì)信息,并向客戶端發(fā)送 NTLM 質(zhì)詢。
  5. 客戶端利用已用用戶密碼進(jìn)行了加密的質(zhì)詢響應(yīng)(即身份驗(yàn)證令牌)進(jìn)行響應(yīng)。
  6. 此時(shí),IIS 需要與域控制器會(huì)話。它發(fā)送客戶端的用戶名、質(zhì)詢和質(zhì)詢響應(yīng)。
  7. 域控制器檢索用戶的密碼哈希,并將其與使用用戶憑據(jù)加密的質(zhì)詢響應(yīng)進(jìn)行比較。如果兩者匹配,域控制器將向 IIS 返回身份驗(yàn)證成功消息,IIS 可與客戶端瀏覽器會(huì)話。
  8. 此時(shí),Web 應(yīng)用程序?qū)⑾?SQL Server 進(jìn)行身份驗(yàn)證,可以訪問(wèn)包含 .aspx 頁(yè)數(shù)據(jù)的內(nèi)容數(shù)據(jù)庫(kù)。

如果您曾經(jīng)嘗試在“管理中心”網(wǎng)頁(yè)上為基本安裝配置 Kerberos,那么您便知道,如果選擇 Kerberos 而不是 NTLM,生成的消息將提示您配置應(yīng)用程序池帳戶以明確允許使用 Kerberos,除非應(yīng)用程序池正在網(wǎng)絡(luò)服務(wù)上下文中運(yùn)行。這是因?yàn)榛?Kerberos 的身份驗(yàn)證的工作方式需要 SPN。在 WSS 和 MOSS 中,Web 應(yīng)用程序?qū)嶋H上是分配給應(yīng)用程序池的 IIS 網(wǎng)站,在內(nèi)置或用戶帳戶上下文中運(yùn)行??梢詾橥粦?yīng)用程序池分配多個(gè)網(wǎng)站,但這并不是***做法。除非您進(jìn)行更改,否則 IIS 會(huì)將網(wǎng)絡(luò)服務(wù)帳戶用于應(yīng)用程序池,而不使用唯一域帳戶。但是,若要在 SharePoint 中使用 Kerberos,必須針對(duì)應(yīng)用程序池帳戶設(shè)置唯一 SPN。

在實(shí)踐中,基于 Kerberos 的通信必須具有一個(gè)客戶端、一個(gè)能夠支持 Kerberos 的服務(wù)器以及充當(dāng)中間授權(quán)方的 KDC,此外還需要 SPN。技術(shù)細(xì)節(jié)稍微有些復(fù)雜。例如,Kerberos 還要求 DNS 與 Active Directory 或帶有 SRV 記錄、TCP/IP 和時(shí)間服務(wù)的 BIND 集成。如果您使用的是集成了 DNS 的 Windows Server 2003 或 2008,則您已經(jīng)擁有了必需組件,只需配置這些組件即可。圖 3 顯示了 SharePoint 中基于 Kerberos 的身份驗(yàn)證所涉及的各個(gè)組件以及數(shù)據(jù)流。

 


圖 3 Kerberos 身份驗(yàn)證

  1. 與 NTLM 相同,客戶端瀏覽器使用主機(jī)名(FQDN 或別名)以匿名方式發(fā)出 HTTP GET 請(qǐng)求。
  2. 前端服務(wù)器響應(yīng),返回 401.2 錯(cuò)誤以及 WWW-Authenticate: Negotiate 頭和/或 WWW-Authenticate: Kerberos 頭(表明它支持 Kerberos 身份驗(yàn)證)。您必須在管理中心中顯式配置前端服務(wù)器上的此設(shè)置,相關(guān)內(nèi)容將在下文討論。
  3. 客戶端與域控制器上的 KDC 聯(lián)系,并基于瀏覽器客戶端以主機(jī)名的形式發(fā)送的信息為 SPN 請(qǐng)求票證。
  4. 如果 KDC 找到匹配的 SPN,它將對(duì)票證進(jìn)行加密并將其返回。
  5. 瀏覽器客戶端創(chuàng)建身份驗(yàn)證器,并將其與服務(wù)票證一同發(fā)送到 IIS 服務(wù)器。隨后,IIS 服務(wù)器對(duì)票證進(jìn)行解密,確定身份,并檢查其對(duì)所請(qǐng)求資源的權(quán)限(訪問(wèn)控制列表),確定是否允許訪問(wèn)。
  6. 如果允許訪問(wèn),IIS 將通過(guò) Web 應(yīng)用程序服務(wù)聯(lián)系 SQL Server,該服務(wù)將從 KDC 請(qǐng)求 SQL Server 票證。
  7. 如果找到 SPN,KDC 將返回票證,Web 應(yīng)用程序使用該票證來(lái)查詢內(nèi)容數(shù)據(jù)庫(kù),并通過(guò)委派模擬用戶。
  8. SQL Server 檢查來(lái)自 Web 應(yīng)用程序的票證,并驗(yàn)證該票證。驗(yàn)證成功后,SQL Server 將數(shù)據(jù)發(fā)送回服務(wù)器,.NET 將能夠編譯 aspx 頁(yè),并將其發(fā)送到瀏覽器。


 

了解 SPN

SPN 是 Kerberos 配置中難度較大的環(huán)節(jié)之一,因?yàn)樗鼈円鳛楸皇跈?quán)訪問(wèn)特定服務(wù)器資源的客戶端資源的唯一標(biāo)識(shí)符注冊(cè)到 KDC。在集成 Windows 身份驗(yàn)證中,客戶端和服務(wù)器必定信任 KDC,因?yàn)樵趲缀跛星闆r下,KDC 還是域控制器,它需要一種方法來(lái)確定是否為請(qǐng)求授予票證,這種方法就是 SPN。正如上文所述,當(dāng)您為應(yīng)用程序池設(shè)置域用戶帳戶時(shí),還必須針對(duì)帳戶設(shè)置 SPN,以便讓所有人都能訪問(wèn)與應(yīng)用程序池關(guān)聯(lián)的 Web 應(yīng)用程序。

SPN 是在服務(wù)器上運(yùn)行的服務(wù)的唯一標(biāo)識(shí)符字符串。它存儲(chǔ)在 Active Directory 中用戶帳戶的名為 Service-Principal-Name 的多值屬性中。一臺(tái)主機(jī)或多臺(tái)主機(jī)上的多項(xiàng)服務(wù)可以根據(jù)它們的唯一 SPN 進(jìn)行區(qū)分。也許我過(guò)分強(qiáng)調(diào)了 SPN 的重要性,但這樣做是有充分理由的。配置不當(dāng)?shù)?SPN 會(huì)破壞 Kerberos 身份驗(yàn)證。如果您設(shè)置了兩個(gè)相同的 SPN,或者忘記設(shè)置 SPN,或者錯(cuò)誤配置了 SPN 的某一部分,則身份驗(yàn)證將無(wú)法正常進(jìn)行。

讓我們來(lái)看一個(gè) SPN 示例,以了解 Kerberos 如何使用 SPN。SPN 包括三個(gè)部分:標(biāo)識(shí)服務(wù)類型的服務(wù)類、運(yùn)行服務(wù)的主機(jī)的計(jì)算機(jī)名稱、端口。這幾個(gè)部分組合在一起,語(yǔ)法為:服務(wù)類/主機(jī):端口。對(duì)于 SharePoint,有兩個(gè)相關(guān)名稱是 HTTP 和 MSSqlSvc。這兩個(gè)服務(wù)名稱不是任意的,而是定義為服務(wù)的特定別名。主機(jī)名部分是 FQDN 或 NetBIOS 名稱,可以選擇是否包括端口。注冊(cè) SPN 時(shí),***做法是同時(shí)為 NetBIOS 和 FQDN 主機(jī)名注冊(cè) SPN,以便無(wú)論客戶端使用什么方法,它們都可以訪問(wèn)目標(biāo)主機(jī)上的資源。

在上文中,我曾提到除非在網(wǎng)絡(luò)服務(wù)帳戶下運(yùn)行應(yīng)用程序池,否則就需要顯式注冊(cè) SPN。這是因?yàn)楫?dāng)計(jì)算機(jī)加入到 Active Directory 域時(shí),將自動(dòng)為計(jì)算機(jī)帳戶創(chuàng)建 SPN,其格式為 HOST/<NetBIOSname> 和 HOST/<FQDN>。由于網(wǎng)絡(luò)服務(wù)帳戶作為網(wǎng)絡(luò)上的一臺(tái)計(jì)算機(jī),因此 SPN 對(duì)它有效。但是,出于安全考慮,再加上本地帳戶可能會(huì)破壞某些方案,因此使用本地網(wǎng)絡(luò)服務(wù)帳戶并不是***做法。例如,如果您要還原或附加使用網(wǎng)絡(luò)服務(wù)帳戶配置的內(nèi)容數(shù)據(jù)庫(kù),則必須將該帳戶添加到 SQL Server 上的本地管理員組,在附加數(shù)據(jù)庫(kù)之后再將其刪除。大多數(shù)現(xiàn)有文檔推薦使用域帳戶。

后端配置

無(wú)論您是從現(xiàn)有場(chǎng)遷移,還是安裝新場(chǎng),您都必須首先在 SQL Server 上配置 Kerberos 身份驗(yàn)證。SQL Server 必須滿足上文所述的要求,例如加入到域、可以訪問(wèn)充當(dāng) KDC 的域控制器等。對(duì)于大多數(shù)環(huán)境而言,當(dāng)使用集成了 DNS 的 Active Directory 時(shí),在默認(rèn)情況下可以滿足這些要求。如果您的環(huán)境僅使用前端 SharePoint 服務(wù)器,而沒(méi)有使用應(yīng)用程序服務(wù)器(例如運(yùn)行 Excel Services 或 SQL Reporting Services 的服務(wù)器),則不需要顯式配置 Kerberos。對(duì)于基本的前端/后端連接,在 SQL Server 加入到域時(shí)創(chuàng)建的默認(rèn) SPN 足以滿足要求。

在 SQL Server 上,配置 Kerberos 相對(duì)比較簡(jiǎn)單。首先,您要設(shè)置相關(guān) SPN,然后驗(yàn)證使用的是否是 Kerberos 而不是默認(rèn)的 NTLM。您應(yīng)該設(shè)置 NetBIOS 名稱和 FQDN,格式為 MSSQLSvc/<NetBIOS_Name>:1433 和 MSSQLSvc//<FQDN-hostname.domain.local>:1433,此處假定您的實(shí)例使用默認(rèn)的 1433 端口。雖然您可以使用 setspn 工具或 ADSIEdit 來(lái)設(shè)置 SPN,但 setspn 通常是更好的選擇,因?yàn)樗梢则?yàn)證輸入的語(yǔ)法,以確保輸入正確。相反,使用 ADSIEdit 時(shí),您要直接將 SPN 寫(xiě)入 servicePrincipalName 屬性。若要?jiǎng)?chuàng)建兩個(gè) SPN,請(qǐng)運(yùn)行setspn-A MSSQLSvc/<NetBIOS_Name>:1433 <domain>\<username> 和 setspn-A MSSQLSvc/<FQDNe>:1433 <domain>\<username>,其中用戶名為 SQL Server 服務(wù)帳戶。

若要確認(rèn) SQL Server 流量使用的是 Kerberos,您可以使用 Wireshark 等數(shù)據(jù)包分析器跟蹤流量,也可以使用 Kerbtray.exe 等工具,或者檢查事件日志。如果您使用 SQL Server Management Studio 連接到 SQL 實(shí)例,則安全事件日志將顯示事件 ID 540,其中的登錄進(jìn)程和身份驗(yàn)證數(shù)據(jù)包使用 Kerberos。有關(guān)詳細(xì)信息,請(qǐng)參閱為 SQL 通信配置 Kerberos 身份驗(yàn)證。

前端和應(yīng)用程序服務(wù)器配置

確保 Kerberos 在 SQL Server 中正常工作后,接下來(lái)您可以配置 SharePoint,包括為應(yīng)用程序池設(shè)置 SPN,為 SSP 和 Web 應(yīng)用程序啟用 Kerberos,并完成一些最終配置步驟。SPN 配置類似于 SQL Server 服務(wù)帳戶的配置,但需要配置更多的 SPN。回顧一下,SPN 是基于用戶在客戶端瀏覽器地址欄中輸入的地址構(gòu)造的,因此您必須為用戶可能在地址欄中輸入以訪問(wèn)網(wǎng)站的每個(gè)條目設(shè)置 SPN。這包括采用主機(jī)頭格式的 FQDN、NetBIOS 名稱和別名。圖 4 列出了資源類型示例以及需要為每個(gè)資源類型注冊(cè)的 SPN。

圖 4 基本 MOSS 場(chǎng)的 SPN

在設(shè)置 SPN 時(shí),應(yīng)該記住一些注意事項(xiàng)。首先,SPN 要注冊(cè)到啟用 SharePoint 的網(wǎng)站,正如要注冊(cè)到任何 IIS 網(wǎng)站那樣。重要的是指定正確的主機(jī)名和帳戶,每個(gè)網(wǎng)站的應(yīng)用程序池在該帳戶下運(yùn)行。如果使用多個(gè)主機(jī)頭,請(qǐng)確保為所有主機(jī)頭設(shè)置 SPN。第二,不需要指定 HTTP 和 HTTPS 端口,但應(yīng)該指定任何自定義端口。第三,您可能還需要配置其他一些依賴關(guān)系,例如配置針對(duì) IIS 的注冊(cè)表更改以支持帶有自定義端口的 SPN 格式,以及配置更新以支持 SSP。您可以在配置 Kerberos 身份驗(yàn)證 (Office SharePoint Server) 中找到更多詳細(xì)信息。

若想讓 Kerberos 在環(huán)境中正常工作,您還應(yīng)該完成另外兩個(gè)重要步驟。您必須配置用于委派的計(jì)算機(jī)帳戶和一些服務(wù)帳戶,還必須在管理中心為 Kerberos 配置場(chǎng)。Kerberos 中的委派的原理是:如果用戶向最終資源發(fā)出請(qǐng)求,則一些中介帳戶必須處理該請(qǐng)求,這些中介帳戶是可信任的,能夠代表用戶進(jìn)行委派??梢詫?Active Directory 用戶和計(jì)算機(jī)作為域管理員,從而來(lái)配置用于委派的帳戶。在用戶或計(jì)算機(jī)帳戶的“委派”選項(xiàng)卡下,選擇“信任此用戶/計(jì)算機(jī)來(lái)委派任何服務(wù)(Kerberos)”。您應(yīng)該為前端、應(yīng)用程序和 SQL Server 計(jì)算機(jī)帳戶啟用委派,還應(yīng)為應(yīng)用程序池(SSPAdmin、MySite、各種 Web 應(yīng)用程序)和場(chǎng)服務(wù)帳戶啟用委派。

此外,您還需要在“組件服務(wù)”中設(shè)置權(quán)限。在默認(rèn)屬性下,將“模擬級(jí)別”設(shè)置為“委派”。在“IIS WAMREG Admin Service”下,定位到“安全”選項(xiàng)卡,為應(yīng)用程序池帳戶授予“本地激活”權(quán)限。有關(guān)詳細(xì)信息,請(qǐng)參閱知識(shí)庫(kù)文章 917409920783。

啟用委派后,即可通過(guò)啟用 Kerberos 作為 SSP 和 Web 應(yīng)用程序的***協(xié)議來(lái)完成具體的配置工作。對(duì)于新安裝,可以在 SharePoint 產(chǎn)品和技術(shù)配置向?qū)е袨楣芾碇行木W(wǎng)站進(jìn)行此操作。否則,請(qǐng)?jiān)诠芾碇行牡?ldquo;應(yīng)用程序管理”下定位到“驗(yàn)證提供程序”,單擊“默認(rèn)值”并將方法設(shè)置為“協(xié)商(Kerberos)”。不要忘記運(yùn)行 iisreset /noforce,將更改應(yīng)用于應(yīng)用程序池,并為 SSP 啟用 Kerberos。

IIS 7 和 Windows Server 2008 中的變化

截止目前,我們討論的內(nèi)容主要限于 Windows Server 2003 和 IIS 6 上的 SharePoint 2007。如果您遷移到 Windows Server 2008 和 IIS 7,則在體系結(jié)構(gòu)上有一些變化,可能需要其他一些配置步驟。IIS 7 中的最顯著變化也許是它支持內(nèi)核模式 Kerberos 身份驗(yàn)證。在內(nèi)核模式身份驗(yàn)證中,網(wǎng)絡(luò)服務(wù)帳戶(實(shí)際上就是上文所述的計(jì)算機(jī)帳戶)將對(duì)票證進(jìn)行解密,除非您指定了其他設(shè)置。當(dāng)您遷移到 IIS 7 或安裝一個(gè)新場(chǎng)時(shí),默認(rèn)情況下將啟用內(nèi)核模式身份驗(yàn)證。正如上文所述,網(wǎng)絡(luò)服務(wù)帳戶是本地帳戶。如果運(yùn)行的是單個(gè)服務(wù)器,則解密可以正常進(jìn)行。但在場(chǎng)中,解密會(huì)失敗,因?yàn)槟枰褂每梢酝ㄟ^(guò) KDC 驗(yàn)證的域帳戶。這一變化還意味著您可以使用網(wǎng)絡(luò)服務(wù)帳戶進(jìn)行協(xié)議轉(zhuǎn)換(允許客戶端向 IIS 進(jìn)行非 Kerberos 身份驗(yàn)證,允許 IIS 將 Kerberos 用于后端通信),因?yàn)樵搸粢呀?jīng)具有 LocalSystem 權(quán)限。

若要在運(yùn)行 IIS 7 的 SharePoint 場(chǎng)中配置 Kerberos,需要手動(dòng)更改 %WinDir%\System32\inetsrv\config\ApplicationHost.config 文件 — 當(dāng)前沒(méi)有 GUI 選項(xiàng)。相關(guān)條目如下所示。

<system.webServer>
   <security>
      <authentication>
         <windowsAuthentication enabled="true" useKernelMode="true" useAppPoolCredentials="true" />
     </authentication>
   </security>
</system.webServer>

不要忘記運(yùn)行 iisreset /noforce 以應(yīng)用更改,并檢查***更新以發(fā)現(xiàn)問(wèn)題,例如在知識(shí)庫(kù)文章 962943 中詳細(xì)說(shuō)明的藍(lán)屏更新。

如果您的配置使用了身份模擬(web.config 中的 <identity impersonate="true" />)和集成模式管道,則還應(yīng)注意另外一個(gè)配置細(xì)節(jié)。在此情況下,需要將 validateIntegratedModeConfiguration 設(shè)置為 false,或在經(jīng)典模式管道中運(yùn)行 .aspx 頁(yè)。

結(jié)論

雖然 Kerberos 身份驗(yàn)證需要一些額外配置步驟,還需要 NTLM 之外的更多知識(shí),但目前的趨勢(shì)是向 Kerberos 遷移。Microsoft 在 II7 中將 Kerberos 作為默認(rèn)選中選項(xiàng),并且為 Kerberos 提供了良好的支持,因?yàn)樗且粋€(gè)開(kāi)放的標(biāo)準(zhǔn)。使用 Kerberos 物有所值。現(xiàn)在有大量文檔介紹 Kerberos 的部署、驗(yàn)證和故障排除,這也為我們實(shí)際使用 Kerberos 提供了支持。您無(wú)需進(jìn)行很多更改即可避免由于過(guò)多身份驗(yàn)證躍點(diǎn)而導(dǎo)致的性能下降問(wèn)題,享受 Kerberos 的良好安全性。

原文:http://technet.microsoft.com/zh-cn/magazine/ee914605.aspx

來(lái)源:微軟TechNet中文站

責(zé)任編輯:yangsai 來(lái)源: 微軟TechNet中文站
相關(guān)推薦

2020-08-23 09:04:04

SSH身份驗(yàn)證FIDO2 USB

2023-04-18 08:00:35

DexKubernetes身份驗(yàn)證

2024-02-23 07:18:40

JWTWeb應(yīng)用程序

2010-09-06 11:24:47

CHAP驗(yàn)證PPP身份驗(yàn)證

2011-02-21 10:54:45

2013-07-21 18:32:13

iOS開(kāi)發(fā)ASIHTTPRequ

2012-04-10 09:36:58

2020-08-04 08:04:46

VueAPI驗(yàn)證

2024-07-30 12:00:06

2025-04-25 07:00:00

身份驗(yàn)證CISO無(wú)密碼

2021-02-17 08:51:55

cookie身份驗(yàn)證

2021-07-19 10:10:15

身份驗(yàn)證漏洞Windows Hel

2010-11-03 16:07:38

DB2身份驗(yàn)證

2010-07-17 00:57:52

Telnet身份驗(yàn)證

2012-10-23 16:12:35

2019-06-03 11:14:16

2010-07-23 15:13:11

身份驗(yàn)證云服務(wù)

2009-04-09 23:44:08

軟件身份驗(yàn)證用戶

2009-07-29 12:55:44

ASP.NET身份驗(yàn)證

2010-10-27 16:59:59

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)