【问题标题】:ensure web service only accessed by authorized applications确保 Web 服务仅由授权的应用程序访问
【发布时间】:2017-02-21 21:06:11
【问题描述】:

我在带有 iis 的 Windows 服务器上有一个 c# .net wcf Web 服务。我需要知道是否有办法告诉 Web 服务它只能接受来自特定 URL 的请求。 例子: ApplicationA 调用 ApplicationAwebService = 应该可以工作 ApplicationB 调用 ApplicationAwebService = 应该被拒绝

现在,它们都在同一台服务器上,但我需要一个即使它们在不同服务器上也能正常工作的解决方案(3 层应用程序)。 谢谢

【问题讨论】:

  • 您如何知道哪个应用程序正在调用您的 Web 服务?可能是通过客户端 IP 地址?

标签: c# .net web-services wcf wcf-security


【解决方案1】:

如果您使用的是 WCF,则可以在服务和客户端之间使用相互身份验证。相互身份验证不仅实现了服务器接受来自合法客户端的连接的安全性,而且还提供了客户端验证它们是否正在与合法服务器通信的能力。

通过使用证书、kerberos(Windows 身份验证)、令牌和用户名/密码配置,可以通过消息安全(加密客户端和服务器之间发送的数据,反之亦然)实现相互身份验证。

在 WCF 中也可以通过基于角色的身份验证、身份和基于资源的身份验证来实现相互身份验证

来自msdn的参考:https://msdn.microsoft.com/en-us/library/ff647503.aspx

【讨论】:

  • 阅读完信息后,我仍然不确定它是否是我要找的。我需要 webserviceA 只允许 ApplicationA 而不是 applicationB 之间的通信。当他们在同一台服务器上时,一切都已经是windows认证,所以他们都有访问权限。所以 ApplicationB 可以尝试调用 webserviceA 并且我需要拒绝此访问。如果可以的话,我可以使用允许的应用程序的 url。
  • 如果您正在运行 IIS,请检查 stackoverflow.com/questions/1075618/…
猜你喜欢
  • 2013-07-25
  • 2018-12-03
  • 2012-06-14
  • 1970-01-01
  • 2013-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多