将当前用户凭据传递给远程服务器
我在同一个域上的远程计算机和客户端上有应用程序服务器(web服务或远程处理,尚未确定)。我想将用户认证为服务器上的域用户。将当前用户凭据传递给远程服务器
我可以要求用户输入他们的Windows用户名/密码并将这些用户名/密码发送到服务器,并让服务器根据Active Directory进行检查,但我宁愿不要。有什么方法可以让客户端发送某种令牌,然后服务器可以使用该令牌来确定哪个域用户向其发送请求?显然,我想保护服务器免受发送假用户ID和冒充其他用户的人的服务。
澄清
在计算机A上的客户端将与我想我可能会使用.NET远程此通信计算机B上的服务器进行通信。在服务器上,我只需要知道计算机A上用户的ID;如果计算机A上的应用程序必须发送该ID,我需要确保它没有发送其他用户的ID。
我不需要冒充其他用户,我只需要知道(某些人)是谁。
你是说客户端与你的服务器通信,你需要在第三个服务器上使用客户端的权限?该场景描述了The Double-Hop Problem。博客最详细地描述了它,并且可以做些什么来规避它(域修改)。
如果您将网络设置为使用Kerberos并将相关Web服务器设置为受信任进行委派,则可以绕过此问题并使用适当的委派。
补充:
我知道没有办法,你可以找出计算机A上用户难道是不够的,如果它只是执行程序的用户?您可以在域方案中使用Windows身份验证,但这只会授予您程序用于身份验证的权限,这可能与键盘前面的实际恶意用户有所不同。
补充:
你的意见,这篇文章表明,与模拟windows身份验证会为你工作。查看代码示例http://community.bartdesmet.net/blogs/bart/archive/2006/08/26/4277.aspx。
如果您选择使用Kerberos路由,请参阅http://geeks.netindonesia.net/blogs/jimmy/archive/2008/02/29/service-principal-name-headache.aspx,以获取疑难解答提示它。相信我这有时会让人头疼。 – 2009-07-08 15:07:36