2009-12-07 110 views
0

我正在编写一组使用可信子系统模型依赖传输安全性和Windows身份验证的WCF服务。但是,我想根据发起请求的原始客户端用户(例如来自具有用户名/密码的网站的用户)执行授权。我打算通过在客户端发送消息之前在头中添加原始用户的凭据来实现此目的,然后该服务将使用提供的凭据来授权用户。所以我有几个关于这个实现的问题:WCF安全传输安全问题

1)使用传输安全与Windows身份验证,我不需要再担心再次加密传递的凭据,以确保有效性... WCF自动照顾这一点 - 是这正确吗?

2)该实现如何防止恶意服务在域中的某个Windows帐户下运行,从而发送标有欺骗性凭证的邮件。例如,恶意服务会用管理员用户替换凭据来做一些不好的事情?

感谢您的任何帮助。

回答

0

您使用的是什么绑定?此服务仅限于您的公司局域网中,还是您计划出门在防火墙之外?

要回答你的问题(据我可以)

1)在Windows身份验证通过传输安全,传输层将被加密和安全的 - 没有必要担心凭证等

的额外的加密

2)它不能。如果恶意服务设法“劫持”了一些有效的Windows凭据,并且在您的公司网络上拥有账户的“John Doe”,则WCF服务无法将其与John Doe的有效请求区分开来。

+0

是的,这项服务只会在企业局域网内使用NetTcpBinding。 2)您是否知道我们可以防止这种情况发生的其他方式?或者你能否建议一些其他类型的实现仍然允许使用受信任的子系统模型,同时根据原始请求进行授权? – shyneman 2009-12-07 21:39:54

+0

为2) - 不,不是真的 - 但恶意服务必须能够劫持现有的Windows帐户,包括其安全令牌 - 我相信在公司局域网内,这是不太可能的 – 2009-12-07 21:41:00

+0

2)唯一的选择使它更安全的是使用标准的Windows模拟,而不是将自己的Windows凭据打包为明文。让Windows处理它的所有模拟方面 – 2009-12-07 21:41:38