2011-05-11 100 views
5

我試圖設置WCF委派,但沒有成功(場景是Client> Frontend Server> Backend Server)。在理論上,這應該是直接使用Kerberos(我有一個Windows域),但在實踐中,我遇到了像SSPI或甚至基本的消息安全等奇怪的錯誤。WCF授權的任何優秀資源?

我發現無數的淺層資源和論壇帖子,人們遇到問題並且基本上只是通過試錯來猜測解決方案。我在一些所謂的「專業」和「專家」WCF書籍中查看了目錄,但代表團似乎是沒有人願意討論的東西(實際上,在例外之一中存在一個錯字,即.net拋出這讓我覺得,即使微軟真的對此感到困擾)。

無論如何,是否有任何資源,其中有一些人實際上有線索和信心來解釋整個過程A-Z,使用方法論與實際解釋,而不僅僅是無用的代碼塊,不工作,永遠不會解釋?

+1

我已經使用WIF SDK(http://www.microsoft.com/downloads/en/details.aspx?FamilyID=c148b2df-c7af-46bb-9162-2c9422208504&displaylang=en)獲得WCF安全性。這可能會或可能不會幫助您的方案,但它確實具有完整的示例項目。 – 2011-05-11 01:49:10

回答

1

這是一個比WCF問題更多的Kerberos問題。

其基本思想是客戶端根據安全上下文向前端服務器發出請求,然後將此安全上下文發送到後端服務器。

這不能只是在代碼中修復。轉發Kerberos標記的計算機必須被信任才能做到這一點。運行代碼的帳戶也必須被信任才能轉發安全令牌。

對於一般的Kerberos:http://support.microsoft.com/kb/907272

這是Kerberos進行的SharePoint,但有很多共同之處:http://blogs.msdn.com/b/martinkearn/archive/2007/04/23/configuring-kerberos-for-sharepoint-2007-part-1-base-configuration-for-sharepoint.aspx

1

這樣做的WCF代碼實際上是相當簡單的。配置服務帳戶和Kerberos行爲可能非常困難。

你之所以這麼難找到例子,是因爲很少有人真的這樣做。執行委派的過程必須在Active Directory中(在域控制器上)的「受委託委派」的帳戶下運行。這種能力非常強大,許多IT部門都有明確的政策反對它。

有一個「約束委託」的概念,它定義了哪些資源可以被訪問,但這又是在Active Directory中定義的,而不是你的代碼。在繼續編碼之前,我建議確保您有能力對Active Directory進行必要的更改。爲代表團啓用一個帳戶是我在不止一家公司輸掉的一場戰鬥。

對於引用我建議:

是這兩個引用是有點老了,但他們都適用。 「如何」中列出的所有受限制的委派步驟均適用於Active Directory,而不是綁定到ASP。