WCF服务最简单的安全方法是啥

Posted

技术标签:

【中文标题】WCF服务最简单的安全方法是啥【英文标题】:What's the simplest security method of a WCF serviceWCF服务最简单的安全方法是什么 【发布时间】:2012-05-08 11:34:26 【问题描述】:

它正在运行到托管在 IIS 7.0 中的 Intranet、.net 框架 3.5,并且它使用具有 null 安全性的 wsHttpBinding。现在我必须保护它,只允许特定用户可以运行它。

似乎我应该使用 SSL 和证书,但我真的很想远离它,因为看起来很复杂,基本上我正在寻找最简单的方法。

我查看了 netTcpBinding,在我看来这是正确的方法,如果是这样,您能否确认使用 net.tcp 是否可以被某些 asp.net 站点使用。

欢迎任何cmets。

谢谢,

【问题讨论】:

最简单的可能是您在 WCF Web 应用程序的 web.config 中指定允许连接的唯一有效用户名,这仅在您相信未经授权的人不会编辑此类 web.config 时才有效。 @DavidePiras,这样的话,我必须启用windows身份验证,如果这样不需要SSL,对吧? @m0dest0:我认为 Davide 是说用户名将被硬编码到配置文件中。只有知道这些凭据的人才能获得访问权限。 @mellamokb,明白了 :) 谢谢你的澄清。 【参考方案1】:

在您的情况下,您有一个内部网,这意味着您有内部用户。这取决于对 WCF 服务的调用来自何处。

如果我们假设:

内部用户,登录到 Windows 域 客户端机器和服务器在同一个域中 用户在他们的机器上运行一个 Windows 应用程序,这会调用 WCF

那么最简单的解决方案就是使用windows认证

客户端在登录用户的安全上下文中进行调用 服务器检查用户的组成员关系以确定它是否应该允许访问

【讨论】:

【参考方案2】:

您说您正在使用 Intranet 应用程序。

如果是这样,您可以打开 Windows 身份验证,并仅允许 IIS 中的特定用户(这也在 web.config 中进行控制)。如果每个人都在 Intranet 上,它应该自动进行身份验证,用户无需输入密码或用户名。

但是,如果您的 Intranet 之外的任何人需要访问此服务,则您需要包含 SSL 和 https 以保护发送到该服务的凭据。

【讨论】:

以上是关于WCF服务最简单的安全方法是啥的主要内容,如果未能解决你的问题,请参考以下文章

使用 netTcpBinding 时,在 WCF 中实现加密的最简单方法是啥?

在 python Web 服务器上执行数学用户代码,最简单的安全方法是啥?

在 .NET 中序列化复杂对象层以进行缓存的最简单方法是啥?

在用户注销后防止浏览器的后退按钮显示安全数据的最简单方法是啥?

哪位大侠以简单易懂的语言给我介绍下 WCF和WPF 分别是干啥用的?

unity学习啥最重要?