簡體   English   中英

為什么BasicHttpBinding不需要主體名稱就可以在IIS7上使用Kerberos Auth?

[英]Why doesn't BasicHttpBinding need a Principal Name to use Kerberos Auth on IIS7?

我對Kerberos身份驗證的工作原理了解很多,但就我的一生而言,我無法解釋我在IIS托管的WCF服務中看到的奇怪行為。

我已經建立了一個非常簡單的WCF應用程序,該應用程序使用BasicHttpBinding和TransportCredentialOnly公開了一個端點。 我的理解是,要使Kerberos工作,客戶端必須指定用戶主體名稱或服務主體名稱。 由於某種原因,在不同的綁定類型之間似乎不一致。

當我省略此主體名稱時,在IIS6上最終會使用NTLM。 在IIS7上,它使用Kerberos。 當我在IIS6上指定用戶主體名稱時,使用Kerberos,但在IIS7上調用失敗(在Kerberos握手過程中,Wireshark顯示KRB_AP_ERR_BADMATCH錯誤)。

當我通過Message Security將綁定切換到WSHttpBinding時,它會變得更加有趣。 在該實驗中,如果我未在IIS6上指定用戶主體名稱,則調用將失敗,並在IIS7上使用NTLM。 當我指定UPN時,IIS6失敗,並且II7使用Kerberos結束。 這是我的發現的摘要。 如果有任何人可以幫助我確定發生的事情,我將永遠感激不已。

匯總表

您知道IIS 7中的內核模式身份驗證嗎? 它消除了對應用程序池使用自定義標識的需求,並且(在大多數情況下)也消除了將SPN分配給自定義標識或主機的需求。

這是一篇博客文章 ,描述了使用內核模式身份驗證時何時需要設置SPN。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM