我的项目涉及一个用户从客户端连接到 Web 服务,然后将 Web 服务连接到 SQL Server。Web 服务和 SQL Server 位于不同的计算机上。由于安全要求,我们不能在 SQL Server 中使用混合模式,只能使用 Windows 身份验证。
我们遇到了 Web 服务和 SQL Server 之间的“双跳”问题。我们正在使用 NTLM 身份验证,并且由于开销和学习曲线的原因不想配置 Kerberos 。我们也不希望将 Web 服务和 SQL Server 放在同一台机器上。
据我了解,我们所有的要求都使这种情况无法解决。但是,一位开发人员提出了这个建议:
1)在SSL加密下从客户端发送windows用户名和密码到web服务
2) 以某种方式将 Windows 用户名和密码转换为可以由 SQL Server 进行身份验证的安全令牌
打个比方,当连接到 SQL Server 时,听起来我们会在 C# 代码中执行 RUNAS。Web 服务没有身份验证,只能通过 SQL Server。
我的问题:
1)建议的解决方案是否可行?
2)如果是这样,它会怎么做?
3) 有任何网络资源可以帮助我了解如何完成吗?