考虑两个.NET控制台应用程序Client.exe和Server.exe,它们在内部网络的同一Windows域上的两台不同的计算机上运行。
服务器在专用的,特权较低的域帐户下运行。它只能访问一些目录和数据库。
客户端以启动它的人类用户的域帐户运行。
客户端通过套接字连接向服务器发送简单的指令和请求,服务器忠实地答复,而不考虑启动客户端的人的身份。我想通过更改通信协议来对此进行更改,以使客户端向服务器提供一些无可辩驳的证据,证明客户端的用户帐户已通过域进行了正确的身份验证。
问。客户端可以向服务器发送哪些信息,当服务器反序列化和解压缩这些信息时,客户端可以使用哪些信息来验证客户端的用户帐户身份以及对域的成功身份验证?
我想要的例子:
客户: (1)发送:我的名字是DOMAINNAME \ username,并且我已经成功通过了Windows会话的身份验证[某些身份验证标识符仅客户端和域知道]。 (2)发送:请求
服务器: (1)使用域基础结构验证客户端发送的证据确实代表DOMAINNAME \ username的成功身份验证会话。 (2)验证DOMAINNAME \ username是允许发出请求的Windows组的成员。 (3)处理请求并发送响应。
服务器不需要模拟客户端用户,也不需要客户端将其用户名和密码提交给服务器。这就是为什么问题How to validate domain credentials?不太适合我正在尝试做的事情。
甚至不确定我正在尝试的方法是否可行,但如果可以,您是否可以向我指出正确的方向?
最好
花式