2013-01-08 73 views
1

不屬於域(但位於網絡上)的計算機可以對由IIS8發佈的Web站點進行身份驗證,其中該站點的身份驗證是「Windows身份驗證」僅與「Negotiate:Kerberos」的單個提供程序(並且禁用了內核模式身份驗證)?IIS:對不在域中的客戶端計算機使用Kerberos

我問,因爲我正在嘗試做到這一點,但我不能通過身份驗證到網站(但單獨嘗試將身份驗證傳遞到數據庫)。我在客戶端的響應中看到了「WWW-Authenticate:Negotiate」標題,但客戶端似乎只在隨後的(重新)請求中發送「NTLM Type1:Negotiation」(NTLMSSP)。無論是我還是不正確地解釋Fiddler2的結果!

我使用的是Kerberos,因爲大多數客戶端都是域計算機,我需要將用戶憑據從Web應用程序傳回數據庫。我希望我能夠對非域名計算機做同樣的事情,他們只會被提示輸入一個用戶名/域名/密碼,這個用戶名/域名/密碼將被驗證並轉換爲服務器上的Kerberos票據。

請注意,出於測試目的,Windows 8既是服務器又是客戶端。在生產中,服務器將是Windows 2008 Server R2,客戶端主要是Windows 7(儘管會有一些Windows 8客戶端)。

回答

1

Kerberos將而不是工作的帳戶/計算機不屬於域的一部分。 你有兩種選擇才達到你的目標:

  1. 請求與基本身份驗證的用戶數據並傳遞至LogonUserEx。請參閱this獲取答案。
  2. 通過其他方式驗證用戶並使用S4U2self(協議轉換)。
+0

我有一種可怕的感覺,會是這樣。我想現在,應用程序只能用於屬於域的計算機。我希望它可以在局域網上的任何計算機上爲任何域用戶提供,但我需要能夠爲本地用戶使用自動Windows身份驗證,同時將憑據從IIS服務器傳遞到SQL服務器。 –

+0

@MartinRobins,你期望什麼?如果某人不在域中,他/她顯然不能使用Kerberos。沒有隱藏的魔法。 –

+0

我期待着與NTLM有類似的經歷;如果計算機不在域上,則彈出一個登錄對話框,然後驗證針對該域提供的憑據。然後在任何雙跳中使用這些憑證。我現在明白,通過Kerberos,瀏覽器實際上負責從域中首先獲取這些憑證,並將它們與請求一起發送 - 因此,它無法從不在域中的計算機上運行# –

相關問題