有没有一种方法可以在不修改服务方法的情况下保护 Web 服务?

3
我们有一些现有的Web服务,需要一些基本的安全措施来防止未经授权的第三方对服务进行调用。
如果可能的话,最好不要改变服务。例如,添加额外的参数到服务方法中以传递每个调用的令牌。
一个想法(如果可能的话)是使用IIS模块拦截所有对服务的调用,并检查头部是否有令牌。当令牌正确时,它会让请求通过,否则会取消请求。这样,第三方只需要在我们给他们密钥后传递额外的HTTP头字段,而我们根本不需要改变服务。
这引发了以下问题:
使用托管的IIS模块是否可以实现这一点?(必要时使用非托管的)。如果可以,那么在使用WCF或Visual Studio中的Web引用连接到Web服务时,如何传递额外的头字段?
如果有其他选项符合我的要求,我想听听。谢谢。
2个回答

1

1

您可以使用基本/摘要/Windows身份验证。您可以在IIS中设置它。使用起来相当简单。Microsoft 在这里有一个详细介绍。在Visual Studio中很容易设置。

想了解更深入的信息和逐步说明, 了解如何使用此方法保护Web服务。

其中任何一个都不需要您更改Web服务本身。但是它们只提供基本的安全性。如其他用户所建议的,使用SSL可以提供更高级别的安全性,但需要Web服务在其自己的(子)域或应用程序中运行。

如果您最终考虑更改Web服务并向其添加身份验证,请考虑阅读这篇CodeProject文章


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