2009-07-08 76 views
1

我在同一個域上的遠程計算機和客戶端上有應用程序服務器(web服務或遠程處理,尚未確定)。我想將用戶認證爲服務器上的域用戶。將當前用戶憑據傳遞給遠程服務器

我可以要求用戶輸入他們的Windows用戶名/密碼並將這些用戶名/密碼發送到服務器,並讓服務器根據Active Directory進行檢查,但我寧願不要。有什麼方法可以讓客戶端發送某種令牌,然後服務器可以使用該令牌來確定哪個域用戶向其發送請求?顯然,我想保護服務器免受發送假用戶ID和冒充其他用戶的人的服務。

澄清

在計算機A上的客戶端將與我想我可能會使用.NET遠程此通信計算機B上的服務器進行通信。在服務器上,我只需要知道計算機A上用戶的ID;如果計算機A上的應用程序必須發送該ID,我需要確保它沒有發送其他用戶的ID。

我不需要冒充其他用戶,我只需要知道(某些人)是誰。

回答

0

你是說客戶端與你的服務器通信,你需要在第三個服務器上使用客戶端的權限?該場景描述了The Double-Hop Problem。博客最詳細地描述了它,並且可以做些什麼來規避它(域修改)。

如果您將網絡設置爲使用Kerberos並將相關Web服務器設置爲受信任進行委派,則可以繞過此問題並使用適當的委派。

補充:

我知道沒有辦法,你可以找出計算機A上用戶難道是不夠的,如果它只是執行程序的用戶?您可以在域方案中使用Windows身份驗證,但這隻會授予您程序用於身份驗證的權限,這可能與鍵盤前面的實際惡意用戶有所不同。

補充:

你的意見,這篇文章表明,與模擬windows身份驗證會爲你工作。查看代碼示例http://community.bartdesmet.net/blogs/bart/archive/2006/08/26/4277.aspx

+0

如果您選擇使用Kerberos路由,請參閱http://geeks.netindonesia.net/blogs/jimmy/archive/2008/02/29/service-principal-name-headache.aspx,以獲取疑難解答提示它。相信我這有時會讓人頭疼。 – 2009-07-08 15:07:36

相關問題