WCF服务最简单的安全方法是什么?

4
它正在Intranet中运行,使用.NET Framework 3.5,在IIS 7.0上托管,并且使用具有null安全性的wsHttpBinding。现在我必须保护它,以便只允许特定用户运行它。
看起来我应该使用SSL和证书,但我真的不想这样做,因为看起来很复杂,基本上我正在寻找最简单的方法。
我查看了netTcpBinding,对我来说似乎这是正确的方法,如果是这样,您能否确认使用net.tcp是否可以被某些asp.net站点使用。
欢迎任何评论。
谢谢,

1
最简单的方法可能是在WCF Web应用程序的web.config中指定允许连接的唯一有效用户名,但前提是您信任没有未经授权的人会编辑此类web.config。 - Davide Piras
@DavidePiras,这样的话,我必须启用Windows身份验证,那么就不需要SSL了,对吗? - m0dest0
@m0dest0:我认为Davide的意思是用户名将被硬编码到配置文件中。只有知道这些凭据的人才能访问。 - mellamokb
2个回答

2

你说你正在使用一个Intranet应用程序。

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

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


2

根据你的情况,你有一个内部网络,这意味着你有内部用户。取决于调用WCF服务的位置。

如果我们假设:

  • 登录到Windows域的内部用户
  • 客户端机器和服务器在同一域中
  • 用户在其计算机上运行一个Windows应用程序,该应用程序进行WCF调用

那么最简单的解决方案是使用Windows身份验证

  • 客户端以已登录用户的安全上下文进行调用
  • 服务器检查用户的组成员身份以确定是否允许访问

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接