我正在设计一个 Windows 客户端应用程序,它将从 SFTP 服务器检索文件。我想避免强迫用户在客户端应用程序上提供凭据 - 相反,他们的 Windows 凭据将提供给服务器,然后服务器将进行身份验证并提供对适当资源的访问。
市场上的 SFTP 服务器似乎将允许证书认证或密码认证。如果提供了证书,则不需要密码。否则用户将需要输入密码。
据我所知,使用证书身份验证的问题是我们需要在应用程序本身内管理用户(创建、删除等),而不是依赖于 Active Directory。这给我们已经很复杂的环境增加了额外的管理复杂性。
有谁知道:
A) 满足我要求的 SFTP 服务器解决方案
或者
B) 我可以使用另一种方法来集中 AD 中的用户管理,同时仍然允许 SFTP 服务器上的 SSO?
如果要在 Linux 机器上运行 OpenSSH,可以将 OpenSSH 与 Kerberos 集成:http: //port25.technet.com/archive/2008/06/06/technical-analysis-openssh-on-linux-using-windows-kerberos -for-authentication.aspx
我没有找到关于 Kerberos 在 Windows 上与 OpenSSH 集成的好文档(通过 cygwin)。我很想听听可能做过这件事的人的来信。
虽然我不愿意推荐它,但Ipswitch 的 WS-FTP 服务器完全可以满足您的要求(在 Windows 机器上)。它变得更好了,但用户界面仍然很差。
你也可以走 Linux 盒子路线,但我可能会结合使用LikeWise open和rssh以方便管理。
VanDyke Software 的 VShell 就是这样做的。
回答您的问题 A:您可能想尝试 Syncplify.me Server!,这是一个支持 PKI 和 Active Directory(取决于您的需要)的 Windows SFTP 服务器,因此您可以轻松地将身份验证过程集成到您的客户端软件中,而无需用户输入密码。
回答您的问题 B:作为 Syncplify.me 服务器!支持 Active Directory 组、用户以及“包罗万象”的虚拟用户,您可以利用这些功能大大简化用户管理(无需每次都在 SFTP 服务器中创建/编辑用户配置文件)。
链接:http ://www.syncplify.me/syncplifyme-server.html
老问题,但是......我们使用了在 Windows 服务器上运行的 CrushFTP。它也适用于其他平台,无需客户端CrushFTP
许多用于安全访问的功能并与 AD 集成。许多其他强大的功能,低成本和强大的支持。没有尝试过最新版本,但早期版本很棒。即使在试用期间,支持也是例外。值得一看
允许您的客户端应用程序在 Windows 域环境中使用其现有的登录凭据向 SFTP 服务器进行身份验证最终意味着您正在使用 Kerberos。您的 SFTP 服务器必须支持 Kerberos 并在与您的客户端属于同一域(或受信任域)的计算机上运行。您的 SFTP 客户端还必须支持 Kerberos。我不确定您是如何在应用程序中完成客户端连接的,但您可能需要检查一下。
关于在 Windows 上使用什么是好的 SSH 服务器?. 由于 SFTP 只是 SSH 的一个功能,因此该问题中的大多数答案都是一个很好的起点。我个人的偏好是投票最多的答案,Bitvise SSH Server。它是一个 Windows 本地 SSH 服务器,而不是一些 OpenSSH 的变体,它已经被黑客入侵以在 Windows 上工作。与大多数其他付费选项相比,它相对便宜。