2009-06-04 52 views
3

當我們的客戶安裝我們的軟件時,他們經常選擇「拆分式安裝」,其中服務在一個盒子上運行,數據庫在另一個盒子上。這些服務可能會與其他服務交談,或者數據庫可能包含需要與另一個數據庫交談的存儲過程。Anonymous,Authenticate,Impersonate和Delegate之間有什麼區別,以及爲什麼Delegate需要Kerberos?

這導致我們進入Kerberos和SetSPN的黑暗世界。

我正準備向支持小組發送一封電子郵件,告知Windows支持的各種認證級別之間的差異,但我意識到我的知識對模擬和委託之間的區別有點模糊,而且我真的對於Kerberos來說,它粗略。

任何人都可以啓發我嗎?

回答

3

身份驗證(authn)是指識別用戶。授權(authz)意味着確定經過身份驗證的用戶擁有哪些權限。匿名用戶尚未通過身份驗證,但可能對系統擁有某些權限(「訪客」)。模仿和委託是同一枚硬幣的兩面。如果我用你的身份去做某件事,我會冒充你;你委託我冒充你並採取一些行動的權利。

Kerberos(或「路邊」)是一種基於令牌的認證方案。也就是說,這是讓用戶登錄並在系統中正確識別(authn)並賦予權限(authz)的一種方式。

每個評論:您不需要限制委派,但它內置到Server 2003中。您還可以使用NTLM,SSL證書映射或摘要式身份驗證。但這些都不如Curb強大和靈活。您也可以選擇執行約束委派,從而只允許委派某個服務。原因是你需要一個可信的第三方來驗證你的令牌。基本上,流程是這樣的...

  1. 我驗證我的域名。
  2. 該域向我頒發證書。該證書對我提出索賠。
  3. 我採取的證書,並給它的服務,我想允許我做一些事情
  4. 該服務採用的是證書和Valida與受信任的證書頒發機構
  5. 基於與通信的服務給或拒絕訪問的吧證書頒發機構

這是一個深刻的問題,你知道。 :)以上是一些good article上述選項。此外,請查看web cast - 這是關於ADFS的,但它在可能有幫助的概念上做得很好。

+0

不錯,但我想了解更多的細節...... – 2009-06-05 10:44:03

2

您可能想要在Ken Schaefer's網站上刷新Kerberos。他的Kerberos FAQ岩石。

添加到上面的答案,委派有一臺服務器使用客戶端的原始身份驗證身份驗證到另一臺服務器。使用Kereberos,這相對容易實現 - 只需讓第一臺服務器「重新發布」客戶端的身份驗證令牌即可。替代方案(NTLM)不允許輕鬆/安全地進行委託,因爲它的挑戰/響應認證 - 服務器對輔助服務器進行認證的唯一方法是它是否能夠對挑戰/響應做出響應,並且做到這一點將需要客戶的密碼。

我有一個ServerFault answer regarding Kerberos Delegation這可能很有趣。

相關問題