【问题标题】:how to restrict a wcf service to one client application only如何将 wcf 服务仅限于一个客户端应用程序
【发布时间】:2012-12-26 20:16:04
【问题描述】:

我们有一个 WCF 服务,使用 WSHttpBinding 并将安全模式设置为传输,因为我们使用的是 SSL。我们还被要求确保该服务只能由使用它的 1 个 Web 应用程序调用,有没有办法阻止其他应用程序与它通信?

应用程序和服务都在公司内联网中运行,但该内联网上也会有其他应用程序,因此他们希望我们将其屏蔽。我们尝试将传输的 clientCredentialType 设置为 =“Windows”,但每次访问站点时都会提示登录,用户不希望这样,因为一旦站点出现,他们就已经登录了。

【问题讨论】:

  • 要将其限制为一个应用程序,您需要授权,而不是身份验证。
  • 好的,有没有办法在 wcf 中做到这一点,无论是在配置文件中还是通过 iis?
  • msdn.microsoft.com/en-us/library/ms751480.aspx - 它比我想实现的要复杂,但这是我知道的唯一方法。

标签: c# asp.net wcf wcf-security


【解决方案1】:

从这里开始以获得概览 http://wcfsecurityguide.codeplex.com/ 一些轻松的阅读...

快速的答案在于如何唯一标识 Web 应用程序? 它在 IIS 服务器上有自己的 APP 池吗?因此可以有自己的用户。 此用户是否在同一个 Active Directory 上。然后您可以基于应用程序用户的安全性。

您可能会使用防火墙来确保流量仅来自该 Web 服务器。 您可以使用颁发给该服务器的 X.509 证书并将绑定更改为所需的 X.509。

如果不了解更多关于环境的信息,很难知道该推荐什么。 指南很好。从解决方案一目了然(第 13 页)开始,以了解您的选择并从那里跳来跳去。除非您有足够的耐心阅读指南;-)

【讨论】:

  • 服务和 Web 应用程序都将在同一台服务器上,您能否告诉我如何通过应用程序池锁定它,我可以将它们保存在同一个池中或 2 个不同的池中同一个盒子。将使用该应用程序的用户仅限于公司网络内的用户,因此在 LDAP 中,但他们也可以访问其他应用程序,用户数量会有所不同。
  • 在 IIS 中,您应该在 IIS 管理器中的网站上方的应用程序池。
  • 抱歉,但不确定您的意思。我可以为他们创建应用程序池,如果这就是你的意思,但是如何限制。
  • 在 IIS 中您可以创建一个池。在池的高级屏幕中,将特定的用户 ID 放在池上。现在分配您的网站以使用该池。然后将 WCF 服务配置为仅允许该身份。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-29
  • 1970-01-01
相关资源
最近更新 更多