按需远程验证客户端Windows用户

时间:2009-11-14 11:57:13

标签: authentication authorization windows-authentication

假设我正在为特定网络协议编写服务器。如果我知道客户端在Windows计算机上运行,​​我的服务器是否可以对拥有启动连接的客户端进程的Windows用户进行身份验证,而不受相关网络协议的影响?

原理

我其实希望编写一个FTP代理服务器。客户端将使用所需的服务器用户名和伪造的密码连接到代理。然后,代理将验证运行FTP客户端的Windows用户(通过除FTP协议之外的某种机制)。在验证Windows用户之后,代理将确定该Windows用户是否可以通过其FTP客户端连接到真实FTP服务器作为用户名。

条件

  • 客户端和代理都将位于同一防火墙内,并且NAT后面不会隐藏任何客户端(如果需要,允许代理连接回客户端)。

1 个答案:

答案 0 :(得分:1)

微软试图让这件事变得困难。他们不希望程序在没有凭据的情况下进行身份验证。

您必须插入身份验证框架并说服系统您确实是身份验证的来源。请参阅'Lsa'功能。

请参阅开源ssh服务器的来源,了解您的选项。

当然,如果你真的有证书,你可以合法地插入框架。

如果连接的另一端是Windows框,则可以通过Kerberos获取凭据并使用SSPI API。我推荐this book