2009-08-11 45 views
3

我有一個用C#編寫的WCF服務,託管在遠程機器上,以本地管理員帳戶運行。在我的計算機上以活動目錄用戶身份登錄,我發送的命令只是告訴它在網絡上打開文件。我有權訪問該文件,但主機上的管理員帳戶沒有。我在需要模擬的方法上使用[OperationBehavior(Impersonation = ImpersonationOption.Required)]元標記,並且我具有正確設置的憑證類型和安全模式。我可以通過比較Windows身份驗證該帳戶是否確實試圖模仿,但我仍然遇到訪問被拒絕的異常。我認爲這與活動目錄沒有對模擬用戶進行身份驗證有關。有什麼我失蹤?爲什麼我無法在遠程機器上使用模擬打開文件?

+0

只是一個想法...是否足夠模擬這個? – 2009-08-11 19:03:36

+0

我真的希望它是,我能想到的唯一方法就是將它們序列化。我可能會得到一個虛擬帳戶,它可以運行,但是... – MGSoto 2009-08-11 19:13:02

回答

5

您正在進入Kerberos安全域和兩個跳躍驗證域。
你有兩個選擇:

  • 採取紅色藥丸:儘量讓兩週跳的認證工作。確保至少有一個Windows Server 2003域,時間在所有機器之間正確同步,併爲spefic用戶/計算機帳戶設置適當的委派。如果你真的「幸運」,你將不得不使用SetSPN配置SPN。

  • 乘坐藍色藥丸:忘記兩跳認證,有剛好夠權限的帳戶冒充WCF服務,並在前面的步驟檢查授權。

原諒我的無奈,但我不認爲我與這個主題簡要經歷了花費我至少有10年我的生活。我不想看到其他人發生這種情況。無論如何,如果你感覺很勇敢,這篇文章應該給你足夠的谷歌關鍵字。

事件日誌和網絡監視器對調試很有用...

+0

嗯。我使用授權設置WebDAV並不是很麻煩。可能幫助我們已經在Server 2003域,並且我有一大羣Windows管理員來做實際的配置。 – tvanfosson 2009-08-11 19:28:29

+0

它已經變得更加麻煩,而且我同意,我不想處理Kerberos身份驗證。看起來我們正在採取簡單的方法,創建一個具有有限訪問權限的應用程序特定用戶。 – MGSoto 2009-08-11 21:09:25

1

您可能還需要設置從Web服務器到文件服務器的委派。這將允許文件服務器信任Web服務器已驗證的憑據。有關如何爲您的應用程序設置委派,請參閱此MSDN article,特別是有關配置AD的部分。

+0

這實際上是一個託管的應用程序方案,但我認爲也許AD服務器不允許模擬? – MGSoto 2009-08-11 19:14:09

+0

@MGS您的Web服務器必須由AD委託代表用戶進行委派。如果它不被信任,它將無法工作。 – Will 2010-02-23 14:32:24

相關問題